Bonjour
Comment est-il possible d'obtenir automatiquement les valeurs importantes (colonnes H à K) selon la tête de gicleur choisi dans ma liste déroulante sachant que je peux avoir plus de 3 lignes orange (ex : 11 lignes pour le gicleur I.26) ?
On peut faire un code VBA qui va aller chercher les infos selon le choix de votre cellule B3 dans la feuille Générateur
Conditions : il faut être sûr de votre coté que la couleur orange et/ou le fond blanc sera toujours identique
Pour les formules en J et K, pourquoi ne les mettez vous pas aussi dans la feuille générateur et devez-vous voir les formules ou simplement les chiffres
Crdlt
Edit : voici ce que vous pouvez faire dans votre fichier
1. Feuille Générateur
- click droite sur le nom de l'onglet
- choisir "Visualiser le code"
- dans la fenêtre, collez le code ci-dessous
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B3")) Is Nothing Then
recupere Target
End If
End Sub
2. Allez dans l'éditeur VBA
- insérer un module
- coller le code ci-dessous
Sub recupere(Target As Range)
Dim ws As Worksheet
Dim i As Byte, j As Byte
With Worksheets("Générateur")
Set ws = Sheets(.Range("B3").Value)
.Range("H6:K100").ClearContents
j = 6
i = 8
Do Until ws.Range("C" & i) = ""
If ws.Range("C" & i).Font.Color = RGB(235, 96, 17) Then 'couleur Orange
.Range("H" & j) = ws.Range("C" & i).Value
.Range("I" & j) = ws.Range("D" & i).Value
If j > 6 Then
.Range("J" & j - 1) = (.Range("I" & j) - .Range("I" & j - 1)) / (.Range("H" & j) - .Range("H" & j - 1))
End If
.Range("K" & j).FormulaR1C1 = "=RC[-2]-RC[-1]*RC[-3]"
j = j + 1
End If
i = i + 1
Loop
.Range("J" & j - 1) = .Range("J" & j - 2)
End With
End Sub
Attention que comme je vous l'ai précisé le code fonctionnera si la couleur de police est strictement identique à l'orange que vous avez choisi
Le contrôle de couleur se fait sur la ligne if ...... = RGB
Crdlr