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