Selection multiple de lignes en fonction d'un texte VBA
bonjour à tous,
je suis nouveau ici et je viens vers vous en espérant trouver une réponse à une réponse sur laquelle je penche depuis 8h maintenant XD
alors voila j'ai une liste de données :
CMD_OUT\XXX DESCRIPTION
DIN\XXX DESCRIPTION
EQUIP\EQ_XXX\EQ_XXX DESCRIPTION
EQUIP\EQ_XXX\HOUR
EQUIP\EQ_XXX\MINUTE
EQUIP\EQ_XXX\SECOND
FUNCTION\FCT_XXX_YYY\FCT_XXX_YYY DESCRIPTION
FUNCTION\FCT_XXX_YYY\IC\IC_01 RESERVE
FUNCTION\FCT_XXX_YYY\IC\IC_02 RESERVE
FUNCTION\FCT_XXX_YYY\IC\IC_03 RESERVE
FUNCTION\FCT_XXX_YYY\IC\IC_04 RESERVE
FUNCTION\FCT_XXX_YYY\IC\IC_05 RESERVE
FUNCTION\FCT_XXX_YYY\IC\IC_06 RESERVE
FUNCTION\FCT_XXX_YYY\IC\IC_07 RESERVE
FUNCTION\FCT_XXX_YYY\IC\IC_08 RESERVE
FUNCTION\FCT_XXX_YYY\IC\IC_09 RESERVE
FUNCTION\FCT_XXX_YYY\IC\IC_10 RESERVE
FUNCTION\FCT_XXX_YYY\IC\IC_11 RESERVE
FUNCTION\FCT_XXX_YYY\IC\IC_12 RESERVE
FUNCTION\FCT_XXX_YYY\IC\IC_13 RESERVE
FUNCTION\FCT_XXX_YYY\IC\IC_14 RESERVE
FUNCTION\FCT_XXX_YYY\IC\IC_15 RESERVE
FUNCTION\FCT_XXX_YYY\IC\IC_16 RESERVE
FUNCTION\FCT_XXX_YYY\MEAS\DEC_MEAS_01 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\MEAS\DEC_MEAS_02 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\MEAS\DEC_MEAS_03 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\MEAS\DEC_MEAS_04 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\MEAS\DEC_MEAS_05 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\MEAS\DEC_MEAS_06 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\MEAS\DEC_MEAS_07 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\MEAS\DEC_MEAS_08 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\MEAS\DEC_MEAS_09 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\MEAS\DEC_MEAS_10 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\MEAS\DEC_MEAS_11 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\MEAS\DEC_MEAS_12 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\MEAS\DEC_MEAS_13 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\MEAS\DEC_MEAS_14 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\MEAS\DEC_MEAS_15 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\MEAS\DEC_MEAS_16 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\MEAS\DEC_MEAS_17 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\MEAS\DEC_MEAS_18 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\MEAS\DEC_MEAS_19 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\MEAS\DEC_MEAS_20 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\MEAS\MEAS_01 RESERVE
FUNCTION\FCT_XXX_YYY\MEAS\MEAS_02 RESERVE
FUNCTION\FCT_XXX_YYY\MEAS\MEAS_03 RESERVE
FUNCTION\FCT_XXX_YYY\MEAS\MEAS_04 RESERVE
FUNCTION\FCT_XXX_YYY\MEAS\MEAS_05 RESERVE
FUNCTION\FCT_XXX_YYY\MEAS\MEAS_06 RESERVE
FUNCTION\FCT_XXX_YYY\MEAS\MEAS_07 RESERVE
FUNCTION\FCT_XXX_YYY\MEAS\MEAS_08 RESERVE
FUNCTION\FCT_XXX_YYY\MEAS\MEAS_09 RESERVE
FUNCTION\FCT_XXX_YYY\MEAS\MEAS_10 RESERVE
FUNCTION\FCT_XXX_YYY\MEAS\MEAS_11 RESERVE
FUNCTION\FCT_XXX_YYY\MEAS\MEAS_12 RESERVE
FUNCTION\FCT_XXX_YYY\MEAS\MEAS_13 RESERVE
FUNCTION\FCT_XXX_YYY\MEAS\MEAS_14 RESERVE
FUNCTION\FCT_XXX_YYY\MEAS\MEAS_15 RESERVE
FUNCTION\FCT_XXX_YYY\MEAS\MEAS_16 RESERVE
FUNCTION\FCT_XXX_YYY\MEAS\MEAS_17 RESERVE
FUNCTION\FCT_XXX_YYY\MEAS\MEAS_18 RESERVE
FUNCTION\FCT_XXX_YYY\MEAS\MEAS_19 RESERVE
FUNCTION\FCT_XXX_YYY\MEAS\MEAS_20 RESERVE
FUNCTION\FCT_XXX_YYY\OPT\OPT_01 RESERVE
FUNCTION\FCT_XXX_YYY\OPT\OPT_02 RESERVE
FUNCTION\FCT_XXX_YYY\OPT\OPT_03 RESERVE
FUNCTION\FCT_XXX_YYY\OPT\OPT_04 RESERVE
FUNCTION\FCT_XXX_YYY\OPT\OPT_05 RESERVE
FUNCTION\FCT_XXX_YYY\OPT\OPT_06 RESERVE
FUNCTION\FCT_XXX_YYY\OPT\OPT_07 RESERVE
FUNCTION\FCT_XXX_YYY\OPT\OPT_08 RESERVE
FUNCTION\FCT_XXX_YYY\OPT\OPT_09 RESERVE
FUNCTION\FCT_XXX_YYY\OPT\OPT_10 RESERVE
FUNCTION\FCT_XXX_YYY\OPT\OPT_11 RESERVE
FUNCTION\FCT_XXX_YYY\OPT\OPT_12 RESERVE
FUNCTION\FCT_XXX_YYY\OPT\OPT_13 RESERVE
FUNCTION\FCT_XXX_YYY\OPT\OPT_14 RESERVE
FUNCTION\FCT_XXX_YYY\OPT\OPT_15 RESERVE
FUNCTION\FCT_XXX_YYY\OPT\OPT_16 RESERVE
FUNCTION\FCT_XXX_YYY\PARAM\DEC_PARAM_01 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\PARAM\DEC_PARAM_02 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\PARAM\DEC_PARAM_03 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\PARAM\DEC_PARAM_04 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\PARAM\DEC_PARAM_05 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\PARAM\DEC_PARAM_06 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\PARAM\DEC_PARAM_07 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\PARAM\DEC_PARAM_08 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\PARAM\DEC_PARAM_09 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\PARAM\DEC_PARAM_10 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\PARAM\DEC_PARAM_11 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\PARAM\DEC_PARAM_12 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\PARAM\DEC_PARAM_13 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\PARAM\DEC_PARAM_14 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\PARAM\DEC_PARAM_15 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\PARAM\DEC_PARAM_16 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\PARAM\DEC_PARAM_17 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\PARAM\DEC_PARAM_18 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\PARAM\DEC_PARAM_19 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\PARAM\DEC_PARAM_20 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\PARAM\PARAM_01 RESERVE
FUNCTION\FCT_XXX_YYY\PARAM\PARAM_02 RESERVE
FUNCTION\FCT_XXX_YYY\PARAM\PARAM_03 RESERVE
FUNCTION\FCT_XXX_YYY\PARAM\PARAM_04 RESERVE
FUNCTION\FCT_XXX_YYY\PARAM\PARAM_05 RESERVE
FUNCTION\FCT_XXX_YYY\PARAM\PARAM_06 RESERVE
FUNCTION\FCT_XXX_YYY\PARAM\PARAM_07 RESERVE
FUNCTION\FCT_XXX_YYY\PARAM\PARAM_08 RESERVE
FUNCTION\FCT_XXX_YYY\PARAM\PARAM_09 RESERVE
FUNCTION\FCT_XXX_YYY\PARAM\PARAM_10 RESERVE
FUNCTION\FCT_XXX_YYY\PARAM\PARAM_11 RESERVE
FUNCTION\FCT_XXX_YYY\PARAM\PARAM_12 RESERVE
FUNCTION\FCT_XXX_YYY\PARAM\PARAM_13 RESERVE
FUNCTION\FCT_XXX_YYY\PARAM\PARAM_14 RESERVE
FUNCTION\FCT_XXX_YYY\PARAM\PARAM_15 RESERVE
FUNCTION\FCT_XXX_YYY\PARAM\PARAM_16 RESERVE
FUNCTION\FCT_XXX_YYY\PARAM\PARAM_17 RESERVE
FUNCTION\FCT_XXX_YYY\PARAM\PARAM_18 RESERVE
FUNCTION\FCT_XXX_YYY\PARAM\PARAM_19 RESERVE
FUNCTION\FCT_XXX_YYY\PARAM\PARAM_20 RESERVE
FUNCTION\FCT_XXX_YYY\SP\DEC_SP_01 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\SP\DEC_SP_02 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\SP\DEC_SP_03 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\SP\DEC_SP_04 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\SP\DEC_SP_05 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\SP\DEC_SP_06 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\SP\DEC_SP_07 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\SP\DEC_SP_08 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\SP\DEC_SP_09 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\SP\DEC_SP_10 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\SP\DEC_SP_11 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\SP\DEC_SP_12 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\SP\DEC_SP_13 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\SP\DEC_SP_14 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\SP\DEC_SP_15 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\SP\DEC_SP_16 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\SP\DEC_SP_17 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\SP\DEC_SP_18 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\SP\DEC_SP_19 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\SP\DEC_SP_20 Number of decimal (0/1/2)
FUNCTION\FCT_XXX_YYY\SP\SP_01 RESERVE
FUNCTION\FCT_XXX_YYY\SP\SP_02 RESERVE
FUNCTION\FCT_XXX_YYY\SP\SP_03 RESERVE
FUNCTION\FCT_XXX_YYY\SP\SP_04 RESERVE
FUNCTION\FCT_XXX_YYY\SP\SP_05 RESERVE
FUNCTION\FCT_XXX_YYY\SP\SP_06 RESERVE
FUNCTION\FCT_XXX_YYY\SP\SP_07 RESERVE
FUNCTION\FCT_XXX_YYY\SP\SP_08 RESERVE
FUNCTION\FCT_XXX_YYY\SP\SP_09 RESERVE
FUNCTION\FCT_XXX_YYY\SP\SP_10 RESERVE
FUNCTION\FCT_XXX_YYY\SP\SP_11 RESERVE
FUNCTION\FCT_XXX_YYY\SP\SP_12 RESERVE
FUNCTION\FCT_XXX_YYY\SP\SP_13 RESERVE
FUNCTION\FCT_XXX_YYY\SP\SP_14 RESERVE
FUNCTION\FCT_XXX_YYY\SP\SP_15 RESERVE
FUNCTION\FCT_XXX_YYY\SP\SP_16 RESERVE
FUNCTION\FCT_XXX_YYY\SP\SP_17 RESERVE
FUNCTION\FCT_XXX_YYY\SP\SP_18 RESERVE
FUNCTION\FCT_XXX_YYY\SP\SP_19 RESERVE
FUNCTION\FCT_XXX_YYY\SP\SP_20 RESERVE
IANA\XXX\XXX DESCRIPTION
IANA\XXX\MAX
IANA\XXX\MIN
IANA\XXX\NB_DEC Number of decimal (0/1/2)
MOTOR\XXX DESCRIPTION
OANA\XXX\XXX DESCRIPTION
OANA\XXX\MAX
OANA\XXX\MIN
OANA\XXX\NB_DEC Number of decimal (0/1/2)
REGUL\XXX\XXX DESCRIPTION
REGUL\XXX\NB_DEC Number of decimal (0/1/2)
VALVE\XXX DESCRIPTION
VALVE_ANA\XXX DESCRIPTION
Number_View Number of synoptic
alors voila je souhaite par exemple selectionner toutes les lignes comprenant FUNCTION puis les copier sachant que j'aimerai que cela fonctionne dans un cas général. ici cela serait simple car les Function sont à la suite mais si le tableau etait désordonné j'aimerai aussi que cela fonctionne
j'ai codé ceci :
Sub FeuilleFUNCTION()
Dim i As Long
i = 5
Sheets.Add After:=Worksheets(Worksheets.Count) 'ajoute une feuille dans le classeur actif en fin de classeur
ActiveSheet.Name = "FeuilleFunction" 'Nomme la feuille cr�ee Folder GC Originel
Worksheets("Tag GC Originel").Activate 'Rend la feuille Tag GC Originel active
Do While Cells(i, 2) <> "" 'balaye toute la colonne num�ro 2 (ici B) tant qu'il n'y a pas de caract�re nul
i = i + 1
SendKeys "(^)"
If Cells(i, 2).Value Like "*FUNCTION*" Then ' est active si FUNCTION existe dans la colonne B
'MsgBox "Le mot ""FUNCTION"" existe dans la colonne."
Cells(i, 2).Activate
ActiveCell.EntireRow.Select
End If
Loop
End Sub
en esperant avoir une réponse merci à vous
thomas
plusieurs choses me semble etranges dans ton code:
1/dans ta boucle, tu modifie la valeur de i avant qu'elle ne verifie la "ligne en question". tu demarre a 5, tu passe a 6 puis tu verifie, c'est normal?
2/tu cherche a copier les lignes qui correspondent a ta recherche mais j'vois pas de .copy.
3/ il me semble que les comparaison de texte se font avec .Text
du coup:
Dim i,j As Long
i = 5
j=2 'correspond a la ligne de collage resultat
Sheets.Add After:=Worksheets(Worksheets.Count) 'ajoute une feuille dans le classeur actif en fin de classeur
ActiveSheet.Name = "FeuilleFunction" 'Nomme la feuille cr�ee Folder GC Originel
Worksheets("Tag GC Originel").Activate 'Rend la feuille Tag GC Originel active
Do While Cells(i, 2) <> "" 'balaye toute la colonne num�ro 2 (ici B) tant qu'il n'y a pas de caract�re nul
SendKeys "(^)"
If Cells(i, 2).Text Like "*FUNCTION*" Then ' est active si FUNCTION existe dans la colonne B
'MsgBox "Le mot ""FUNCTION"" existe dans la colonne."
Cells(i, 2).Activate
ActiveCell.EntireRow.copy sheets("FeuilleFunction").cells(j,1)
End If
i = i + 1
j=j+1
Loopj'espere t'avoir aider un peu, j'maitrise pas trop les comparaisons de texte
zarik a écrit :plusieurs choses me semble etranges dans ton code:
1/dans ta boucle, tu modifie la valeur de i avant qu'elle ne verifie la "ligne en question". tu demarre a 5, tu passe a 6 puis tu verifie, c'est normal?
2/tu cherche a copier les lignes qui correspondent a ta recherche mais j'vois pas de .copy.
3/ il me semble que les comparaison de texte se font avec .Text
du coup:
Dim i,j As Long i = 5 j=2 'correspond a la ligne de collage resultat Sheets.Add After:=Worksheets(Worksheets.Count) 'ajoute une feuille dans le classeur actif en fin de classeur ActiveSheet.Name = "FeuilleFunction" 'Nomme la feuille cr�ee Folder GC Originel Worksheets("Tag GC Originel").Activate 'Rend la feuille Tag GC Originel active Do While Cells(i, 2) <> "" 'balaye toute la colonne num�ro 2 (ici B) tant qu'il n'y a pas de caract�re nul SendKeys "(^)" If Cells(i, 2).Text Like "*FUNCTION*" Then ' est active si FUNCTION existe dans la colonne B 'MsgBox "Le mot ""FUNCTION"" existe dans la colonne." Cells(i, 2).Activate ActiveCell.EntireRow.copy sheets("FeuilleFunction").cells(j,1) End If i = i + 1 j=j+1 Loopj'espere t'avoir aider un peu, j'maitrise pas trop les comparaisons de texte
bonjour
alors pour les points :
1 : oui c'est normal
2 : alors oui voila justement je cherche à copier une fois que ma selection est finie mais lorsque je selectionne une ligne, que je passe ensuite à la suivante, et que je la sélectionne, l'autre ligne précédemment sélectionne se désélectionne du coup ma sélection n'est plus bonne
3 : non cette comparaison fonctionne bien
MERCI VOTRE SOLUTION FONCTIONNE SUPER BIEN C'EST DUPER MERCI !!!
je cherche à copier une fois que ma selection est finie
Enclenche la copie a chaque selection, ca ira mieux