Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Si trouve pas, alors passe directement a la fin

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

ninanani

XLDnaute Occasionnel
Bonjour,

Je souhaiterais que avec la macro suivante, si a la ligne en rouge, il ne trouve rien, alors, il arrete la macro.

Sub cherche()
For n = 2 To Sheets("Simple Invoice").Range("B65536").End(xlUp).Row
Set c = Sheets("paiement").Columns(1).Find(Sheets("Simple Invoice").Range("B" & n).Value, LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
Sheets("Simple Invoice").Range("G" & 5) = c.Offset(0, 1)
Sheets("Simple Invoice").Range("G" & 6) = c.Offset(0, 2)

Sheets("Simple Invoice").Range("A" & 19) = c.Offset(0, 3)
Sheets("Simple Invoice").Range("A" & 20) = c.Offset(0, 4)
Sheets("Simple Invoice").Range("A" & 21) = c.Offset(0, 5)
Sheets("Simple Invoice").Range("A" & 22) = c.Offset(0, 6)
Sheets("Simple Invoice").Range("A" & 23) = c.Offset(0, 7)
Sheets("Simple Invoice").Range("A" & 24) = c.Offset(0, 8)
.
.
.
.
.
End if
End sub

Ma macro etant enormement longue.

Resume : Si il ne trouve pas le meme nom sur la "simple invoice" en B&n, et sur la paiement en columns 1. Alors il n applique pas tous les copier qui arrivent apres. Il pass direct a la END sub..

Voili voilo, merci de votre aide
 
Re : Si trouve pas, alors passe directement a la fin

Re,
Merci pour ta reponse.

Avant ou apres la ligne en rouge?

J ai teste les deux et dans les deux cas, il me dit, lorsque je l applique, "invalid use of subject" en me surlignant le mot nothing. ??
 
Re : Si trouve pas, alors passe directement a la fin

Bonjour Nina, Bertrand

une autre solution, peut être comme ceci :

Code:
If Not c Is Nothing Then
    Sheets("Simple Invoice").Range("G" & 5) = c.Offset(0, 1)
    Sheets("Simple Invoice").Range("G" & 6) = c.Offset(0, 2)
    
    Sheets("Simple Invoice").Range("A" & 19) = c.Offset(0, 3)
    Sheets("Simple Invoice").Range("A" & 20) = c.Offset(0, 4)
    Sheets("Simple Invoice").Range("A" & 21) = c.Offset(0, 5)
    Sheets("Simple Invoice").Range("A" & 22) = c.Offset(0, 6)
    Sheets("Simple Invoice").Range("A" & 23) = c.Offset(0, 7)
    Sheets("Simple Invoice").Range("A" & 24) = c.Offset(0, 8)
[COLOR="Red"][B]Else
    Exit Sub[/B][/COLOR]
End If

bonne journée
@+
 
Re : Si trouve pas, alors passe directement a la fin

re,
1. après la ligne en rouge
2. faute de frappe : il faut mettre : is c is nothing et non point = nothing

en fait, la ligne en rouge fait la recherche, et dans ta variable c est renvoyé quelque chose sit trouvé ou rien (nothing) si pas trouvé

edit : Salut Pierrot, oui, je sais, mais c'est encore mon esprit pédago qui a pris le dessus en voulant obliger naninani à réfléchir sur son code et à trouver la solution du else par elle-même
 
Dernière édition:
Re : Si trouve pas, alors passe directement a la fin

Re PASCALXLD

Moi aussi je pensais que cela devait se faire tout seul aussi, mais non.
Alors que avec cette solution cela fonctionne...
Je ne pourrais pas te l expliquer
 
Re : Si trouve pas, alors passe directement a la fin

re, bonjour Pascal,

exact, c'est curieux, je me suis même pas posé cette question, comme quoi ...
si tu mets un msgbox c après la ligne en rouge, il te donne quoi dans les deux cas (trouvé et pas trouvé)

question subsidiaire, le fait de mettre exit sub va arreter la macro alors que la boucle n'est pas terminée, cela ne pose pas de prob dans ce cas ....
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
708
Réponses
4
Affichages
645
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…