Problème boucle For et interface paramètrage macro
Bonjour,
Débutant en VBA.
J'ai une question concernant le le code de ma macro ci dessous.
Pourquoi est-ce que, quand j'arrive au nombre de lignes du bordereau, la macro continue de renvoyer la conversion de la cellule de la colonne B alors que moi je voudrais que quand on a i = le nombre de lignes du bordereau, et qu'il trouve un élément de "cible", il s'arrête. Et je pensais l'avoir exprimé avec le "exit for" mais ça ne fonctionne pas.
De plus, j'aimerais créer une interface qui permette de paramétrer ma macro. C'est-à-dire que je voudrais qu'il y ait une petite fenêtre qui s'affiche au lancement de la ma macro, qui me demande de rentrer le nom de la feuille qui contient le bordereau, la plage de données avec laquelle je veux travailler, la lettre ou le numéro de la colonne qui contient les numéros de prix, idem pour pour le libellé et la colonne du prix.
Pouvez vous m'aider svp ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| Sub macrolieuconvertisseur()
Dim clb As Integer
Dim bordereau As Range
Dim cible As String
Set bordereau = Worksheets("35G BPU").Range("A1:C1500")
cnpb = bordereau.Columns("A").Column
clb = bordereau.Columns("B").Column
cpb = bordereau.Columns("C").Column
cible = "L'unité :,L' unité :,L'Unité :,L' Unité :,L'heure :,L' heure :,Le mètre :,L'ensemble :,L' ensemble :,Le mètre linéaire :"
For numligne = 1 To bordereau.Rows.Count
With bordereau
If .Cells(numligne, cnpb) <> 0 Then
For i = 1 To 20
If InStr(cible, Cells(numligne + i, clb)) Then
Cells(numligne + i, clb).Value = Cells(numligne + i, clb) & CONVERT(Cells(numligne + i, cpb))
Exit For
End If
Next
End If
End With
Next
End Sub |