Bonsoir laetitia90 ,Chalet 53et toute forum bien sur
un grand merci à toi laetitia90 pour le fichier joint en exemple c'est tout à fait see que je voulais faire .
Voilà je réfléchie a meilleur méthode pour remplir le tableau a partir du bouton "enregistrer " mais j'ai un souci avec ma procédure de repartition .Il déclenche: une erreur de compilation au niveau de la variables C1 ,C2, etc. en disant :"le membre existe déjà dans un module objet dont le présent objet est dérivé ".
pourrais-tu me dire se cela signifie ,car je n'est que deux modules chacun deux contenant les macro d'ouvertures des usf . Donc je mets ma tentative ci dessous .Si vous pouvez me dire quel erreur je fait cela m'aiderais à comprendre car la je n'y comprend plus rien . Une piste pour le premier après je l'appliquerais pour les autres évidement .
le but étant de répartir les quantités attribué à chaque article sélectionné dans chaque liste . sachant que le nombres d'article sélectionné peut aller de 1 à 8 . .
voici 2 exemples :
1) si je peux sélectionné : 1 jus pomme
1 jus d'orange
1 maïs
il faudrait que dans le tableau en face de chaque nom de la colonne A de la feuille "Détail Fiche Client " il y 1 en colonne 1 pour le premier 1 dans la deuxième colonne et 1 dans le troisième .
2 ) mais si je sélectionne la fois suivante ; 1 hamburger
il ne faudra pas qu'ils apparaisse en colonnes 9, mais qu'ils reparte de la 3 colonne et donc 1 colonne 4 .
voilà se que j'essaye de faire ;
si il pouvait y
Voici le programme :
Option Explicit
'Déclare la variable I
Dim i As Byte
'Déclare la variable P
Private P As Range
'Déclare la variable Cel
Private Cel As Range
'Déclare les variables de C1 à C8
Dim C1, C2, C3, C4, C5, C6, C7, C8 As Integer
Private Sub userform2_initialize()
NumClient.List = Feuil1.Range("a6:b65").Value
For i = 1 To 4: Semaine.AddItem i: Next i
For i = 1 To 7: Journée.AddItem i: Next i
For i = 1 To 8: Me("C" & i).List = Feuil2.Range("a12:a122").Value: Next i
End Sub
Private Sub C1_Change()
'Définit le variable p
Set P = Sheets("Détail Fiche Client").Range("B10:BE10").Column
'Boucle sur l'ensemble de la plage P
For Each Cel In P
'récupère C2 pour modification
'boucle sur l'ensembles des textbox " Quantité" et decale
'en fonction de la dernière colonne occupé
For i = 2 To 9 Step 8
'récupère C1 pour modification
C1 = Cells.Find(C1.Value, LookIn:=xlValues).Row
Quantité1.Value = Cells(C1, 2).Value
End Sub
Private Sub C2_Change()
'récupère C2 pour modification
For i = 2 To 9 Step 8
C2 = Cells.Find(C2.Value, LookIn:=xlValues).Row
Quantité2.Value = Cells(C2, 3).Value
End Sub
Private Sub C3_Change()
For i = 2 To 9 Step 8
'récupère C3 pour modification
C3 = Cells.Find(C3.Value, LookIn:=xlValues).Row
Quantité3.Value = Cells(C3, 4).Value
End Sub
Private Sub C4_Change()
For i = 2 To 9 Step 8
'récupère C4 pour modification
C4 = Cells.Find(C4.Value, LookIn:=xlValues).Row
Quantité4.Value = Cells(C4, 5).Value
End Sub
Private Sub C5_Change()
For i = 2 To 9 Step 8
'récupère C5 pour modification
C5 = Cells.Find(C5.Value, LookIn:=xlValues).Row
Quantité5.Value = Cells(C5, 6).Value
End Sub
Private Sub C6_Change()
For i = 2 To 9 Step 8 'récupère C6 pour modification
C6 = Cells.Find(C6.Value, LookIn:=xlValues).Row
Quantité6.Value = Cells(C2, 7).Value
End Sub
Private Sub C7_Change()
For i = 2 To 9 Step 8
'récupère C7 pour modification
C7 = Cells.Find(C7.Value, LookIn:=xlValues).Row
Quantité7.Value = Cells(C7, 8).Value
End Sub
Private Sub C8_Change()
For i = 2 To 9 Step 8
'récupère C8 pour modification
C8 = Cells.Find(C8.Value, LookIn:=xlValues).Row
Quantité8.Value = Cells(C8, 9).Value
End Sub
Private Sub NumClient_Click()
NomClient = NumClient.List(NumClient.ListIndex, 1)
If NumClient <> "" Then Frame1.Visible = 1
End Sub
Private Sub CommandButton1_Click() 'Enregistrement des informations.
'j'affiche les informations suivantes: Période ,N°et Nom du clients
Sheets("Détail Fiche Client").Range("B6").Value = Période.Value
Sheets("Détail Fiche Client").Range("F6").Value = NumClient.Value
Sheets("Détail Fiche Client").Range("L6").Value = NomClient.Value
End Sub
et vous remerciant par avance et espérant avoir été claire dans ma demande je vous dit à bientôt .
Amicalement br44