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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager