tibss
Messages postés21Date d'inscriptionmercredi 26 avril 2006StatutMembreDernière intervention12 septembre 2006
-
11 sept. 2006 à 15:41
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
11 sept. 2006 à 17:46
Bonjour, c'est encore moi
Je vous écris cette fois par rapport à un code qui permet de faire une recherche automatique et qui pose pbm?. Je voudrais dans le cas du "else" : permettre directement de retourner à la fin de la boucle.
Voici le code :
Dim message As String
Dim Plage, LaDate
Dim j As Byte
Sheets("FeuilHSI").Select
Plage = Cells(1, 1).CurrentRegion.Address
NouvelleLigne = Worksheets("FeuilRECOPIE").Cells(65535, 1).End(xlUp).Row + 1
With Worksheets("FeuilHSI").Range(Plage)
Set Cestla = .Find(message, LookIn:=xlFormulas, LookAt:=xlWhole)
If Not Cestla Is Nothing Then
Rows(Range(Cestla.Address).Row).EntireRow.Copy Worksheets("FeuilRECOPIE").Rows(NouvelleLigne)
Rows(Range(Cestla.Address).Row).Delete Shift:=xlUp
Else
'je voudrais aller à "loop until j=350", afin d'incrémenter j de+1 et de commencer une nouvelle recherche lorsque la recherche n'est pas fructueuse. est-ce qeu je peux utiliser "else goto line x"?
End If
End With
DernièreLigne = Worksheets("FeuilRECOPIE").Cells(65535, 1).End(xlUp).Row + 1
'boucle "tant que message = valeur dans la cellule sélectionnée, recommence la recherche"
Set Cestla = Nothing
Loop Until j = 350
J'ai marqué ma difficultée en vert dans le code; quelqu'un pourrait-il me débloker
Sheets("FeuilHSI").Select
Plage = Cells(1, 1).CurrentRegion.Address
NouvelleLigne = Worksheets("FeuilRECOPIE").Cells(65535, 1).End(xlUp).Row + 1
With Worksheets("FeuilHSI").Range(Plage)
Set Cestla = .Find(message, LookIn:=xlFormulas, LookAt:=xlWhole)
If Not Cestla Is Nothing Then
Rows(Range(Cestla.Address).Row).EntireRow.Copy Worksheets("FeuilRECOPIE").Rows(NouvelleLigne)
Rows(Range(Cestla.Address).Row).Delete Shift:=xlUp
DernièreLigne = Worksheets("FeuilRECOPIE").Cells(65535, 1).End(xlUp).Row + 1
End If
End With
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 11 sept. 2006 à 16:26
depuis quand on copie du code en double.....
si tibss veut faire un saut, logiquement c'est justement pour ne pas lire la ligne!!
et s'il voulait la lire, on place alors
DernièreLigne = Worksheets("FeuilRECOPIE").Cells(65535, 1).End(xlUp).Row + 1
une seule fois, après le endif !
<hr size ="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 11 sept. 2006 à 16:43
> s'il voulait la lire ?
Il voulait la lire puisqu' il l' a mis après End With.
Ecrite deux fois mais lu une seule.
Mais je reconnais que c' est une co^^erie de ma part.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 11 sept. 2006 à 16:47
le with est ouvert avant le if, il doit être fermé après le endif. question de propreté. aucun rapport avec le endif lui-même.
s'il veut quitter avant c'est pas pour rien tu ne crois pas?
bref, à tibss de se manifester....
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
Vous n’avez pas trouvé la réponse que vous recherchez ?
tibss
Messages postés21Date d'inscriptionmercredi 26 avril 2006StatutMembreDernière intervention12 septembre 2006 11 sept. 2006 à 17:18
Bonjour en fait la ligne
"DernièreLigne = Worksheets("FeuilRECOPIE").Cells(65535, 1).End(xlUp).Row + 1" est utile dans le cas où la recherche a été fructueuse, et où la ligne entière correspondant au mot recherché doit-être recopiée.
Dans le cas où la recherche n'a pas été fructueuse, il n'y a pas de ligne à recopier; donc il ne n'est pas nécessaire décrire "DernièreLigne = Worksheets("FeuilRECOPIE").Cells(65535, 1).End(xlUp).Row + 1" après le else
Merci à tous les deux de m'avoir aidé en tout cas
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 11 sept. 2006 à 16:12
Bonjour,
Oui mais le problème c' est qu' il doit exécuter
DernièreLigne = Worksheets("FeuilRECOPIE").Cells(65535, 1).End(xlUp).Row + 1
dans tous les cas.
Et donc mettre
......
else
DernièreLigne = Worksheets("FeuilRECOPIE").Cells(65535, 1).End(xlUp).Row + 1
goto line x
End If
DernièreLigne = Worksheets("FeuilRECOPIE").Cells(65535, 1).End(xlUp).Row + 1