IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

variables - Range()


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Janvier 2023
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Janvier 2023
    Messages : 4
    Par défaut variables - Range()
    Bonjour,

    Je ne sais pas si je serai clair dans ma demande (car je débute et pour l'instant je récupère des bouts de code vba à droite et à gauche pour les assembler), mais j'essaye de créer une macro qui permet, à partir d'une question, de définir des variables "colonne1" et "colonne2" qui me permettent ensuite d'effacer des colonnes.

    Si par exemple, dans mes réponses, la variable "colonne1" = B et "colonne2" = F
    je souhaiterais sélectionner les colonnes de B à F pour ensuite utiliser Range() pour les effacer.

    j'ai essayé : Range("colonne1:colonne2").Select
    mais il semble qu'on ne peut pas mettre de variables dans Range() ... ou je m'y prends mal.

    je vous remercie pour votre aide


    Sub test()

    Dim dialogue1 As String

    dialogue1 = MsgBox("est-ce qu'il y a des colonnes à supprimer ?", vbYesNo, "Question") 'question pour continuer ou pas

    If (dialogue1 = 6) Then 'si la réponse est oui

    Dim colonne1 As String

    colonne1 = InputBox("à partir de quelle colonne, faut-il effacer")

    Dim colonne2 As String

    colonne2 = InputBox("jusqu'à quelle colonne, faut-il effacer")

    End If

    Range("colonne1:colonne2").Select 'il y a surement un problème à ce niveau
    Selection.Delete Shift:=xlToLeft

    End Sub

  2. #2
    Expert confirmé Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 288
    Par défaut
    Salut
    Il y a peut être plus simple
    Dans un module standard
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub SelectColonne()
    Dim rng As Range
     
    On Error Resume Next
    Set rng = Application.InputBox( _
        Title:="Sélectionner des colonnes", _
        Prompt:="Selectionnez vos colonnes svp !", _
        Type:=8)
    On Error GoTo 0
     
    If rng Is Nothing Then Exit Sub
    MsgBox rng.Address
    'rng.ClearContents ' effacer le contenu des colonnes sélectionnées
    rng.Delete ' supprimer les colonnes sélectionnées
    End Sub
    sinon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Sub SelectColonne()
    Dim dialogue1 As String
    Dim colonne1 As String
    Dim colonne2 As String
    Dim rng As Range
     
    dialogue1 = MsgBox("est-ce qu'il y a des colonnes à supprimer ?", vbYesNo, "Question") 'question pour continuer ou pas
     
    If dialogue1 = 6 Then 'si la réponse est oui
        colonne1 = InputBox("à partir de quelle colonne, faut-il effacer")
        colonne2 = InputBox("jusqu'à quelle colonne, faut-il effacer")
        Set rng = Range(colonne1 & ":" & colonne2)
        'rng.ClearContents ' effacer le contenu des colonnes sélectionnées
        rng.Delete ' supprimer les colonnes sélectionnées
    End If
    End Sub

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Janvier 2023
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Janvier 2023
    Messages : 4
    Par défaut
    merci @hyperion13

    le premier code fonctionne surement mais je ne sais pas comment répondre à la InputBox → est-ce qu'il faut mettre les lettres correspondant aux colonnes avec des espaces, des points virgules ...


    le deuxième code, même si je ne comprends pas tout en tant que débutant, fonctionne parfaitement. merci


    merci @BENNASR

    j'ai essayé ton code mais j'ai une erreur d'exécution 13' au niveau de la ligne For i = colonne1 To colonne2

    ce n'est pas très grave vu que j'ai un de vos 3 codes qui fonctionnent. Mais si tu souhaites corriger ou me dire ce que je ne dois pas bien faire, n'hésites pas, je suis preneur pour apprendre.



    Merci à vous deux
    Images attachées Images attachées   

  4. #4
    Membre à l'essai
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Janvier 2023
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Janvier 2023
    Messages : 4
    Par défaut
    comme vous êtes très fort :-), je me permets une dernière petite question :

    j'ai trouvé un bout de code qui permet d'enregistrer un feuille Excel en pdf et de l'envoyer ce document par email en utilisant outlook.

    tout fonctionne mais il me manque un élément :
    j'ai plusieurs boites aux lettres et je souhaiterai sélectionner l'une d'elle en particulier. Je ne sais pas comment faire : j'ai essayé .from mais ca ne fonctionne pas

    .from = "xxx@xxx.fr"
    .To = "xxx@xxx.fr"
    .CC = "xxx@xxx.fr"
    .HTMLBody = "Bonjour, ......" & .HTMLBody

    vous savez comment faire ?

    merci d'avance

  5. #5
    Expert confirmé Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 288
    Par défaut
    re
    1er code, lorsque l'inputbox est ouvert il suffit de sélectionner les en-têtes de colonnes puis clic OK
    2ème RAS
    3ème code il faut saisir les numéros de colonnes (1 pour A, 2 pour B, etc.)

    pour le reste lire ceci

  6. #6
    Membre à l'essai
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Janvier 2023
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Janvier 2023
    Messages : 4
    Par défaut
    merci à tous les deux

  7. #7
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonjour
    testez :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub test()
    If MsgBox("est-ce qu'il y a des colonnes à supprimer ?", vbExclamation + vbYesNo) = vbYes Then
    Dim colonne1 As String
    colonne1 = InputBox("à partir de quelle colonne, faut-il effacer")
    Dim colonne2 As String
    colonne2 = InputBox("jusqu'à quelle colonne, faut-il effacer")
    For i = colonne1 To colonne2
     Columns(i).ClearContents
    Next i
    End If
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-MAC 2016] Sélectionner une cellule en fonction d'une variable RANGE
    Par ChrisM972 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/05/2018, 09h45
  2. [XL-2010] Vérifier l'identité de deux variables Range
    Par Dédé6621 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 11/11/2016, 06h41
  3. Realiser une recherche sur une variable "range"
    Par Esmax666 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 16/06/2009, 10h17
  4. modifier une variable "range"
    Par shinji7800 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/03/2009, 15h18
  5. [debutant] variable de type Range et Integer
    Par in dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 05/07/2006, 09h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo