Jesusdenazarrete
Messages postés102Date d'inscriptionjeudi 22 juillet 2010StatutMembreDernière intervention12 juin 2012
-
19 mars 2008 à 09:37
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
19 mars 2008 à 12:17
Bonjour
Je voudrais de l'aide pour ecrire ma boucle qui doit chercher une valeur à l'intérieur d'un mot dans une case excell
With worksheets("JASPE")
.Activate
'Je me met dans la feuille qu'il faut
Set vtrouve = .Range(.Cells(1, 1), .Cells.SpecialCells(xlCellTypeLastCell)).Find(What:=vjaspe, LookAt:=xlPart)
'Je trouve ma valeur à l'intérieur du mot et me place sur sa cellule
vdébut = vtrouve.Row
'Je stocke le numéro de ligne dnas vdébut
i = vdébut
'Je donne a i la valeur de la ligne
While Not Cells.FindNext(After:=ActiveCell) = True
i = i + 1
Wend
vfin = i
'La le but est de sélectionner la plage (les données sont triées et les lignes que je recherche à la suite) tant que la valeur vjaspe est trouvée dans le mot contenu dans la cellule... Mais j'y arrive pas...
.Range(.Cells(vdébut, 1), .Cells(vfin, 16)).Copy
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 19 mars 2008 à 10:41
tu peux faire:
Dim oTrouve As Range
Dim nDeb As Long
Dim nFin As Long
With Worksheets("JASPE")
.Activate
Set oTrouve = .Range(.Cells(1, 1), .Cells.SpecialCells(xlCellTypeLastCell)).Find(vjaspe, LookAt:=xlPart)
nDeb = oTrouve.Row
Do
nFin = oTrouve.Row
Set oTrouve = Cells.FindNext(After:=oTrouve)
Loop While oTrouve.Row > nDeb
.Range(.Cells(nDeb, 1), .Cells(nFin, 16)).Select
End With
Jesusdenazarrete
Messages postés102Date d'inscriptionjeudi 22 juillet 2010StatutMembreDernière intervention12 juin 2012 19 mars 2008 à 11:30
Bah en fait il est sencé copier les 2 lignes : il trouve la cellule 1,1 (sur l'exemple) donc il va a la cellule suivante mais elle est sur la meme ligne alors il s'arrete et copie la plage alors que je voudrais qu'il continue. le probleme c'est qu'on peut pas lui mettre un supérieur ou égal
les valeurs sont toujours placées comme ca, ligne x,x+1,x+2 colonne 1 et 2 (a et b)
donc je me suis penché sur un truc du genre loop while colonne = 2 et otrouve > ndeb mais ca marche pas, il copie toujours qu'une seule ligne.