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 :

FindNext - Pas trouve ailleurs sur le forum :( [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2016
    Messages : 32
    Points : 17
    Points
    17
    Par défaut FindNext - Pas trouve ailleurs sur le forum :(
    Hello all,

    J'ai ce petit bout de code qui me semble plutot correct mas il ne marche pas. je cherche un deblocage si cela vous inspire !

    L'objectif est de faire une boucle avec Findnext sur une valeur donnee. Merci de votre aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Set Phonenmb = Cells.Find(what:=CTN, LookAt:=xlWhole)
    If Phonenmb Is Nothing Then
    CTNreport = 0
    Else
    firstAddress = Phonenmb.Address
    Do
    lig = 2
    WS.Range("A" & lig & ":AZ" & lig).Value = Worksheets("Base").Range(Cells(Phonenmb.Row, 1), Cells(Phonenmb.Row, 42)).Value
    Set Phonenmb = Application.FindNext(Phonenmb)
     lig = lig + 1
     Loop While Phonenmb.Adress <> firstAddress
     
    End If

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par Deuffr Voir le message
    il ne marche pas.
    J'adore quand la description du dysfonctionnement est aussi précise et détaillée.

    A vue de nez, ton lig = 2 me semble assez curieusement placé...
    Initialiser une variable en début de boucle, c'est bien... à condition que ce soit à l'extérieur de la boucle.

  3. #3
    Membre émérite
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Points : 2 684
    Points
    2 684
    Par défaut
    Voici un exemple :

    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 tt()
    Dim ctn As Variant
    'tester avec chacune de ces 3 valeurs de types différents
     ctn = "allo"
     ctn = 1.5
     ctn = CDate("10/01/2016")
     
    Set Phonenmb = Cells.Find(what:=ctn, LookAt:=xlWhole, LookIn:=xlFormulas)
    If Phonenmb Is Nothing Then
    CTNreport = 0
    Else
    firstAddress = Phonenmb.Address
    Do
    lig = 2
    Phonenmb.Select 'Un Select temporaire pour tester le code
    'WS.Range("A" & lig & ":AZ" & lig).Value = Worksheets("Base").Range(Cells(Phonenmb.Row, 1), Cells(Phonenmb.Row, 42)).Value
    Set Phonenmb = Cells.FindNext(Phonenmb)
     lig = lig + 1
     Loop While Phonenmb.Address <> firstAddress
     
    End If
     
    End Sub

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2016
    Messages : 32
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par Menhir Voir le message
    J'adore quand la description du dysfonctionnement est aussi précise et détaillée.

    A vue de nez, ton lig = 2 me semble assez curieusement placé...
    Initialiser une variable en début de boucle, c'est bien... à condition que ce soit à l'extérieur de la boucle.

    En toute honnetete, j'etais en retard pour un rendez-vous lors de mon premier post donc je n'ai pas vraiment pris le temps d'etre plus descriptif.

    L'ensemble marche mais bloque au niveau de Set Phonenmb = Cells.FindNext(Phonenmb). Comme s'il n'arrivait pas a trouver l'occurence suivante dans ma liste de valeur.

    Je corrige la declaration de variable (nous sommes d'accord, elle doit etre declare avant le Do.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2016
    Messages : 32
    Points : 17
    Points
    17
    Par défaut
    Solution

    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
    Set Phonenmb = Cells.Find(what:=CTN, LookAt:=xlWhole)
     
     
    If Phonenmb Is Nothing Then
    CTNreport = 0
    Else
    firstAddress = Phonenmb.Address
    lig = 2
    Do
     
    WS.Range("A" & lig & ":AZ" & lig).Value = Worksheets("Base").Range(Cells(Phonenmb.Row, 1), Cells(Phonenmb.Row, 42)).Value
    Set Phonenmb = Cells.FindNext(Phonenmb)
     lig = lig + 1
     Loop While Phonenmb.Address <> firstAddress
     
    End If
    L'erreur etait sur Address, ecrit avec un seul d ...... Coder en fin de journee, n'est pas une bonne idee

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

Discussions similaires

  1. Comparer deux cellules, si pas trouvé résultat sur Feuille 3
    Par MartinezGarcia dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/02/2008, 14h34

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