Option "commence par" sous VB

scoubi05 Messages postés 5 Statut Membre -  
Polux31 Messages postés 7219 Statut Membre -
Bonjour,

Je voudrais utiliser une fonction similaire à "commence par" sous VB mais je m'en sors pas ...

J'ai plusieurs compte de comptabilité :
60600100
60600200
60600300
70600100
70600200
71600100
71600200
73200100
...

Je voudrais par une boucle qu'il recherche d'abord tout ceux qui commence par 606...et qu'il me copie la case qui se trouve à coté de ce numéro de compte en case "V8" pour le 1er compte trouvé puis en "V9" pour le 2nd... . Puis qu'il recherche tous ceux qui commence par 706...et qu'il me copie la case qui se trouve à coté de ce numéro de compte en case "W8"pour le 1er compte trouvé puis en "W9" pour le 2nd.., puis . Puis qu'il recherche tous ceux qui commence par 716...et ainsi de suite...

Merci de votre aide...

Cordialement

1 réponse

Polux31 Messages postés 7219 Statut Membre 1 204
 
Bonjour,

Je suppose que tes numéros de compte sont de type numérique.

Tu peux faire, par exemple, en admettant que les n° de compte sont sur la feuille 1 en colonne A et commence par la ligne 2, que la colonne à recopier et en colonne B :

Dim lig As Long
Dim ws As Worksheet
Dim ligCpt6 As Long
Dim ligCpt7 As Long

   Set Ws = ThisWorkbook.Worksheets(1)
   lig = 2
   ligCpt6 = 8
   ligCpt7 = 8

   With ws
      While .Range("A" & lig).Value <> ""
         If .Range("A" & lig).Value > 60600000 And .Range("A" & lig).Value < 70600000 Then
            .Range("V" & ligCpt6).Value = .Range("B" & lig).Value
            ligCpt6 = ligCpt6 + 1
         End If
         If .Range("A" & lig).Value > 70600000 And .Range("A" & lig).Value <80600000 Then
            .Range("W" & ligCpt7).Value = .Range("B" & lig).Value
            ligCpt7 = ligCpt7 + 1
         End If
     lig = lig + 1
     Wend
   End With


A toi de l'adapter à ton besoin.

Bon courage

;o)
1