Caroooline
XLDnaute Nouveau
Bonjour à tous,
Merci d'avance pour vos réponses et pour le temps que vous m'accorderez.
Je travaille depuis plusieurs jours sur une énorme base de données clients appelée "fullb". J'ai créé différentes macros mais une me pose problème en particulier.
Chaque client a son numéro d'identification dans la première colonne (colonne A).
Chaque année, un client (nouveau ou ancien) fait une nouvelle commande de vin. La commande avec la date s'ajoute en dernière ligne de mon tableau.
Sachant que chacun de mes clients a effectué plusieurs commandes (dans l'année ou chaque année, peu importe), je cherche à afficher toutes les lignes de ses commandes dans une nouvelle feuille de mon fichier.
J'ai donc créé un UserForm avec une ComboBox (qui est la liste déroulante de tous les numéros d'identification client), relié à un bouton.
Je voudrais qu'une fois que j'ai choisi le numéro de mon client, toutes ses commandes s'affichent dans ma feuille "#ordersclient".
Voici mon code de UserForm:
'Selection des valeurs de ma ComboBox
Private Sub UserForm_Initialize()
Dim y As Integer
y = 1
Do Until IsEmpty(Worksheets("fullb").Range("A" & y))
Call Me.ComboBox1.AddItem(Worksheets("fullb"). _
Range("A" & y).Value)
y = y + 1
Loop
Dim lig As Long, cel As Range
Application.ScreenUpdating = False
Sheets("#ordersclient").Rows("4:65536").ClearContents
lig = 3
With Sheets("fullb")
For Each cel In Range("a2:a" & [W65536].End(xlUp).Row)
'If cel.Value = "ComboBox1.Value" Then
If InStr(1, cel.Value, ComboBox1.Value) > 0 Then
lig = lig + 1
'Recopie dans la feuille "ordersclient" à partir de la ligne 3
Sheets("#ordersclient").Cells(lig, 1).Resize(, 22) = .Cells(cel.Row, 1).Resize(, 22).Value
End If
Next cel
End With
Application.ScreenUpdating = True
End Sub
Ce qui bloque, c'est la ComboBox1.Value. Dans ma feuille #ordersclient, toutes les lignes s'affichent et non pas uniquement celles correspondent au numéro d'identification client.
Peut être que je devrais complètement changer de codage macro...
Merci pour votre aide,
Caroline
Merci d'avance pour vos réponses et pour le temps que vous m'accorderez.
Je travaille depuis plusieurs jours sur une énorme base de données clients appelée "fullb". J'ai créé différentes macros mais une me pose problème en particulier.
Chaque client a son numéro d'identification dans la première colonne (colonne A).
Chaque année, un client (nouveau ou ancien) fait une nouvelle commande de vin. La commande avec la date s'ajoute en dernière ligne de mon tableau.
Sachant que chacun de mes clients a effectué plusieurs commandes (dans l'année ou chaque année, peu importe), je cherche à afficher toutes les lignes de ses commandes dans une nouvelle feuille de mon fichier.
J'ai donc créé un UserForm avec une ComboBox (qui est la liste déroulante de tous les numéros d'identification client), relié à un bouton.
Je voudrais qu'une fois que j'ai choisi le numéro de mon client, toutes ses commandes s'affichent dans ma feuille "#ordersclient".
Voici mon code de UserForm:
'Selection des valeurs de ma ComboBox
Private Sub UserForm_Initialize()
Dim y As Integer
y = 1
Do Until IsEmpty(Worksheets("fullb").Range("A" & y))
Call Me.ComboBox1.AddItem(Worksheets("fullb"). _
Range("A" & y).Value)
y = y + 1
Loop
Dim lig As Long, cel As Range
Application.ScreenUpdating = False
Sheets("#ordersclient").Rows("4:65536").ClearContents
lig = 3
With Sheets("fullb")
For Each cel In Range("a2:a" & [W65536].End(xlUp).Row)
'If cel.Value = "ComboBox1.Value" Then
If InStr(1, cel.Value, ComboBox1.Value) > 0 Then
lig = lig + 1
'Recopie dans la feuille "ordersclient" à partir de la ligne 3
Sheets("#ordersclient").Cells(lig, 1).Resize(, 22) = .Cells(cel.Row, 1).Resize(, 22).Value
End If
Next cel
End With
Application.ScreenUpdating = True
End Sub
Ce qui bloque, c'est la ComboBox1.Value. Dans ma feuille #ordersclient, toutes les lignes s'affichent et non pas uniquement celles correspondent au numéro d'identification client.
Peut être que je devrais complètement changer de codage macro...
Merci pour votre aide,
Caroline