Private Sub ComboBox1_Change() [COLOR="Green"]'s'exécute lorsque l'on sélectionne une valeur sur la liste de l'USF[/COLOR]
Dim pr As Range [COLOR="green"]'déclare la variable pr (Plage des Recettes)[/COLOR]
Dim cel As Range [COLOR="green"]'déclare la variable cel (CELlule)[/COLOR]
Dim col As Byte [COLOR="green"]'déclare la variable col (COLonne)[/COLOR]Dim pp As Range [COLOR="green"]'déclare la variable pp (Plage des Pourcentages)[/COLOR]
Dim dest As Range [COLOR="green"]'déclare la variable dest (DESTination)[/COLOR]
[B]Dim Titres As Boolean[/B] [COLOR="green"]'servira à déterminer si la ligne 4 contient bien les titres[/COLOR]
With Sheets("Feuil1") [COLOR="Green"]'prend en compte l'onglet "Feuil1"[/COLOR]
Set pr = .Range("B3:" & .Range("IV3").End(xlToRight).Address) [COLOR="green"]'définit la variable pr[/COLOR]
For Each cel In pr [COLOR="green"]'boucle sur toute les cellules éditées de la plage pr[/COLOR]
If cel.Value = ComboBox1.Value Then [COLOR="green"]'condition : si la valeur de la cellule cel est égal à la ComboBox1[/COLOR]
col = cel.Column [COLOR="green"]'définit la variable col[/COLOR]
Exit For [COLOR="green"]'sort de la boucle[/COLOR]
End If [COLOR="green"]'fin de la condition[/COLOR]
Next cel [COLOR="green"]'prochaine cellule éditée de la plage pr[/COLOR]
Set pp = .Range(.Cells(3, col), .Cells(65536, col).End(xlUp)) [COLOR="green"]'définit la variable pp[/COLOR]
[B] Titres = False[/B] [COLOR="green"]'on initialise Titres à False car les titres n'ont pas encore été inscrits[/COLOR]
For Each cel In pp [COLOR="green"]'boucle sur toutes les cellules de la plage pp[/COLOR]
If cel.Value <> "" Then [COLOR="green"]'condition : si la cellule n'est pas vide[/COLOR]
[B] If Titres = True Then[/B] [COLOR="green"]'et si les titres sont inscrits[/COLOR]
Set dest = Sheets("feuil2").Range("A65536").End(xlUp).Offset(1, 0) [COLOR="green"]'définit la variable dest[/COLOR]
[B] Else[/B] [COLOR="green"]'Si pas encore de titres, on définit dest en ligne 4[/COLOR]
[B] Set dest = Sheets("feuil2").Range("A4")[/B] [COLOR="green"]'définit la variable dest pour les titres[/COLOR]
[B] Titres = True[/B] [COLOR="green"]' Les titres sont désormais sur la ligne 4[/COLOR]
[B] End If[/B] [COLOR="green"]'fin de la condition pour les titres. Aux prochains passages, ce sera le code initial de Robert qui sera utilisé[/COLOR]
.Cells(cel.Row, 1).Copy Destination:=dest [COLOR="green"]'copie/colle la cellule équivalente de la colonne A (en colonne A de "Feuil2")[/COLOR]
cel.Copy Destination:=dest.Offset(0, 1) [COLOR="green"]'copie/colle la cellule cel(en colonne B de "Feuil2")[/COLOR]
End If [COLOR="green"]'fin de la condition[/COLOR]
Next cel [COLOR="green"]'prochaine cellule de la plage pp[/COLOR]
End With [COLOR="green"]'fin de la prise en compte de l'onglet "Feuil1"[/COLOR]
[COLOR="green"]'On décharge le formulaire[/COLOR]
Unload Me
End Sub