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 :

For to next incrémenté dans find next


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2021
    Messages : 2
    Par défaut For to next incrémenté dans find next
    Bonjour à tous!
    Je vous rejoins pour obtenir de l'aide sur mon code vba

    Dans ma feuille AA, j'ai un code find qui doit rechercher toutes les valeurs de ma base dont la colonne I contient "Croix rouge"
    Le code find et Find next fonctionne très bien.
    Le problème survient après le do car for to next devrait recopier les lignes contenant "croix rouge" les unes après les autres sauf qu'il les recopie toutes sur la même ligne et à la fin ne garde que la dernière ligne contenant "croix rouge"

    Voici le code :
    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
    Sub Recherche()
     
        Dim Dlinge
        Dim x As Long
        Dim CR As Range
        Dim First As String
     
            dligne = Worksheets("Base").Range("A" & Rows.Count).End(xlUp).Row
     
            With Worksheets("Base").Range("I1:I" & dligne)
            Set CR = .Find("Croix rouge", LookIn:=xlValues)
            If Not CR Is Nothing Then
                First = CR.Address
            Do
                    x = 7
                    For i = 1 To dligne
                    If Worksheets("Base").Range("I" & i).Value = CR Then
                    Worksheets("AA").Range("A" & x & ":K" & x).Value = Worksheets("Base").Range("A" & i & ":K" & i).Value
                    Worksheets("AA").Range("P" & x & ":T" & x).Value = Worksheets("Base").Range("N" & i & ":R" & i).Value
                     x = x + 1
                    End If
                    Next i
                Set CR = .FindNext(CR)
            Loop While Not CR Is Nothing And CR.Address <> First
            End If
        End With
     
    End Sub
    Merci pour votre aide!

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Essayez ceci:
    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
    Sub Recherche()
        Dim Dlinge
        Dim x As Long
        Dim CR As Range
        Dim First As String
        Application.ScreenUpdating = False
        dligne = Worksheets("Base").Range("A" & Rows.Count).End(xlUp).Row
        x = 7
        With Worksheets("Base").Range("I1:I" & dligne)
            Set CR = .Find("Croix rouge", LookIn:=xlValues)
            If Not CR Is Nothing Then
                First = CR.Address
                Do
                    Worksheets("AA").Range("A" & x & ":K" & x).Value = Worksheets("Base").Range("A" & CR.Row & ":K" & CR.Row).Value
                    Worksheets("AA").Range("P" & x & ":T" & x).Value = Worksheets("Base").Range("N" & CR.Row & ":R" & CR.Row).Value
                    x = x + 1
                    Set CR = .FindNext(CR)
                Loop While Not CR Is Nothing And CR.Address <> First
            End If
        End With
    End Sub
    Cdlt

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2021
    Messages : 2
    Par défaut
    merci beaucoup

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

Discussions similaires

  1. [XL-2007] Copier coller plage de cellules dans une boucle For Each..Next
    Par JulieD33 dans le forum Excel
    Réponses: 3
    Dernier message: 02/03/2015, 11h19
  2. [AC-2010] For each next dans un ordre précis
    Par Tierisa dans le forum VBA Access
    Réponses: 2
    Dernier message: 29/04/2014, 12h47
  3. Integrer un code dans for to next
    Par jusalou dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/02/2009, 19h13
  4. Aide pour For each..... Next
    Par Virgile59 dans le forum Access
    Réponses: 1
    Dernier message: 24/05/2006, 14h34
  5. [batch] incrémentation dans une boucle for
    Par bart64 dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 08/09/2004, 20h05

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