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 :

Sélection multiples de cellules avec des variables


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 124
    Par défaut Sélection multiples de cellules avec des variables
    Bonjour,

    Pour effectuer une sélection multiple, on peut utiliser la macro suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Selection
     
    Range("E378,F382,E388").Select
     
    End Sub
    Je cherche maintenant à savoir comment faire pour intégrer des variables dans ma macro. La macro suivante ne marche pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Selection
     
    Dim a As Long, b As Long, c As Long
     
    a = 378
    b = 382
    c = 388
     
    Range("E" & a, "F" & b, "E" & c).Select
     
    End Sub
    Qqn peut-il me venir en aide? Merci d'avance. John81

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut John81 et le forum
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Sub Selection
    Dim a As Long, b As Long, c As Long
    a = 378
    b = 382
    c = 388
    Range("E" & a & ", F" & b & ", E" & c).Select
    End Sub
    A+

  3. #3
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 124
    Par défaut
    Merci bcp pour ton aide Gorfael! Bonne journée John81

  4. #4
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 124
    Par défaut
    Rebonjour,

    La macro suivante fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Sommes()
     
    a = Range("A2").End(xlDown).Row         ' n° ligne 1
    b = a - 1
    Set c = Range(Cells(3, 2), Cells(b, 2))
     
    Range("D" & a).Select
    ActiveCell.Formula = "=SUM(" & c.AddressLocal & " )"
     
    End Sub
    Celle-ci ne fonctionne pas:

    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
    17
    18
    19
    Sub TESTSOMME()
    
    a = Range("A2").End(xlDown).Row         ' n° ligne 1
    d = Range("A" & a).End(xlDown).Row      ' n° ligne 2
    g = Range("A" & d).End(xlDown).Row      ' n° ligne 3
    j = Range("A" & g).End(xlDown).Row      ' n° ligne 4
    m = Range("A" & j).End(xlDown).Row      ' n° ligne 5
    p = Range("A" & m).End(xlDown).Row      ' n° ligne 6
    s = Range("A" & p).End(xlDown).Row      ' n° ligne 7
    v = Range("A" & s).End(xlDown).Row      ' n° ligne 8
    y = Range("A" & v).End(xlDown).Row      ' n° ligne 9
    bb = Range("A" & y).End(xlDown).Row     ' n° ligne 10
    
    Set total = Range("B" & a & ", B" & d & ", B" & g & ", B" & j & ", B" & m & ", B" & p & ", B" & s & ", B" & v & ", B" & y)
    
    Range("B" & bb).Select
    ActiveCell.Formula = "=SUM(" & total.AddressLocal & " )"
    
    End Sub
    C'est au niveau de la ligne rouge que se situe le problème. Qqn peut-il m'éclairer? Merci John81

  5. #5
    Membre Expert
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Par défaut
    bonjour,


    rajoute un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    msgbox total.AddressLocal
    avant la ligne en rouge .. pour voir ...

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut à tous
    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
    17
    18
    Sub TESTSOMME()
    
    a = Range("A2").End(xlDown).Row ' n° ligne 1
    d = Range("A" & a+2).End(xlDown).Row ' n° ligne 2
    g = Range("A" & d+2).End(xlDown).Row ' n° ligne 3
    j = Range("A" & g+2).End(xlDown).Row ' n° ligne 4
    m = Range("A" & j+2).End(xlDown).Row ' n° ligne 5
    p = Range("A" & m+2).End(xlDown).Row ' n° ligne 6
    s = Range("A" & p+2).End(xlDown).Row ' n° ligne 7
    v = Range("A" & s+2).End(xlDown).Row ' n° ligne 8
    y = Range("A" & v+2).End(xlDown).Row ' n° ligne 9
    bb = Range("A" & y+2).End(xlDown).Row ' n° ligne 10
    
    Total = Range("B" & a & ", B" & d & ", B" & g & ", B" & j & ", B" & m & ", B" & p & ", B" & s & ", B" & v & ", B" & y)
    
    Range("B" & bb).Formulalocal = "=Somme(" & total.Address & " )"
    
    End Sub
    En gos, tu fait la somme des cellules avant une ligne vide ?
    Si c'est ça, il faut donc que tu passes à la ligne+2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a = Range("A2").End(xlDown).Row  => a=5
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    d = Range("A" & a).End(xlDown).Row
    revient à écire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    d = Range("A5").End(xlDown).Row => d=6
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g = Range("A" & d+2).End(xlDown).Row
    => g=valeur qui devrait être attribuée à d
    Donc, il faut sauter la ligne vide => ça explique le "+2", mais... si tu as une seule ligne entre 2 lignes vides, ça bloque

    Le calcul de bb me semble étrange : c'est la dernière ligne, donc, pas de somme des valeurs entre y et bb ?

    Tu fais les sommes sur B => pourquoi ne pas tester sur B ? ou faire une formule qui n'inscrit en B que la somme des baleur entre les lignes vides ?
    A+

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

Discussions similaires

  1. sélection d'une cellule avec des "noms"
    Par mauriceguillier dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 28/10/2010, 00h10
  2. Réponses: 2
    Dernier message: 13/02/2007, 17h40
  3. Remplir les cellules Excel avec des variables VB
    Par rupeni dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 21/11/2005, 09h31
  4. paramétrer ADOConnection avec des variables
    Par ouckileou dans le forum Bases de données
    Réponses: 3
    Dernier message: 23/04/2004, 08h11
  5. UPDATE avec des variables Delphi ...
    Par Kokito dans le forum Bases de données
    Réponses: 3
    Dernier message: 08/03/2004, 22h35

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