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électionner plusieurs ligne en même temps [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 277
    Par défaut Sélectionner plusieurs ligne en même temps
    Bonjour à tous,

    Je souhaite sélectionner plusieurs ligne en même temps sachant que j'en ai pas le même nombre à chaque fois et que les numéro de ligne change aussi.

    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
    20
    21
    22
    Sub SélectionLignes()
     
    Dim LigneDeTitre As Long
    Dim DerniereLigne As Long
    Dim Tabl() As Long
    Dim i As Long, u As Long
     
        With ActiveSheet
             LigneDeTitre = 1
             u = 0
             DerniereLigne = .UsedRange.Rows.Count
             For i = DerniereLigne To LigneDeTitre + 1 Step -1
                 If Application.CountA(Rows(i)) = Empty Then
                 ReDim Preserve Tabl(u)
                 Tabl(u) = i
                 u = u + 1
                 End If
             Next i
        End With
        Range(Rows(Tabl)).Select
     
    End Sub
    Je me sert de Tabl pour stoker le numéro des lignes à sélectionner.

    Merci d'avance pour votre aide

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 277
    Par défaut
    J'ai trouvé la solution sans passer par un tableau.

    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
    20
    21
    22
    23
    Sub SélectionLignes()
     
    Dim DerniereLigne As Long
    Dim i As Long
    Dim ls As String
     
    With ActiveSheet
         DerniereLigne = .UsedRange.Rows.Count
         For i = 1 To DerniereLigne
             If Application.CountA(Rows(i)) = Empty Then
                If ls = "" Then
                ls = i & ":" & i
                Else
                ls = ls & "," & i & ":" & i
                End If
     
             End If
         Next i
    End With
     
    Range(ls).Select
     
    End Sub

    Ce code sélectionne les lignes vide

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 277
    Par défaut
    Je viens de remarquer que si j'ai un trop grand nombre de ligne à sélectionner cela ne marche plus ça sature ls. Je pense donc que ma première approche est la meilleur mais du coup je n'ai pas résolu mon problème.

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,

    Sans voir l'intérêt de selectionner, essayes ce code (à adapter, bien sur)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Rows("1:10").SpecialCells(xlCellTypeBlanks).Select'lignes à adapter
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 277
    Par défaut
    De ce que j'ai Lu sur le net Rows ne marche que si les lignes sont contiguës.

    Je viens d'essayer ça mais ça marche pas non plus.

    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
    20
    21
    22
    23
    24
    25
    26
    Sub SélectionLignes()
     
    Dim DerniereLigne As Long
    Dim Tabl() As Long
    Dim i As Long, u As Long, umax As Long
     
        With ActiveSheet
             u = 0
             DerniereLigne = .UsedRange.Rows.Count
             For i = 1 To DerniereLigne
                 If Cells(i, 3).Value = "cvc" Then
                 ReDim Preserve Tabl(u)
                 Tabl(u) = i
                 u = u + 1
                 umax = u - 1
                 End If
             Next i
        End With
     
    For u = 0 To umax
     
    Union(Range(Tabl(u) & ":" & Tabl(u))).Select
     
    Next
     
    End Sub

  6. #6
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    De ce que j'ai Lu sur le net Rows ne marche que si les lignes sont contiguës.
    non, dans ce cas précos c'est quant les colonnes ne sont pas contigues et tu ne le précises pas au départ
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  7. #7
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 277
    Par défaut
    Citation Envoyé par casefayere Voir le message
    non, dans ce cas précos c'est quant les colonnes ne sont pas contigues et tu ne le précises pas au départ
    Ba je n'ai pas dis qu'elles l'étaient non plus. Qu'est ce que tu appelles précos?

  8. #8
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 277
    Par défaut
    Ça y est j'ai trouvé.

    Ça marche nickel

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Sub SélectionLignes()
     
    Dim DerniereLigne As Long
    Dim Tabl() As Long
    Dim i As Long, u As Long, umax As Long
    Dim plage As Range
     
        With ActiveSheet
             u = 0
             DerniereLigne = .UsedRange.Rows.Count
             For i = 1 To DerniereLigne
                 If Cells(i, 3).Value = "cvc" Then
                 ReDim Preserve Tabl(u)
                 Tabl(u) = i
                 u = u + 1
                 umax = u - 1
                 End If
             Next i
        End With
     
    For u = 0 To umax
        If u = 0 Then
        Set plage = Range(Tabl(u) & ":" & Tabl(u))
        Else
        Set plage = Union(plage, Range(Tabl(u) & ":" & Tabl(u)))
        End If
    Next
    plage.Select
    End Sub
    Dites moi ce que vous en pensez.

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

Discussions similaires

  1. [XL-2007] Je voudrais sélectionner plusieurs cellules en même temps
    Par ChNoirhomme dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 03/07/2014, 06h20
  2. Réponses: 2
    Dernier message: 01/05/2011, 12h31
  3. Editer plusieurs lignes en même temps dans Eclipse
    Par fourchette dans le forum Eclipse
    Réponses: 2
    Dernier message: 26/01/2011, 12h48
  4. Insertion de plusieurs lignes en même temps
    Par hajoura89 dans le forum Développement Web en Java
    Réponses: 6
    Dernier message: 26/08/2010, 14h01
  5. Insérer plusieurs lignes en même temps.
    Par palisse dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 08/08/2008, 00h47

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