Copie cellules dans autre feuille en fonction de 2 variables

Bonjour à tous,

Je suis nouvelle sur ce forum et je dois vous informer que mes connaissances en vba sont limitées.

J'ai cherché longtemps sur le forum, des sujets qui me permettraient de répondre à mes questions mais malheureusement, j'ai fait chou blanc... Même si certains sujets s'approchaient de près à ce que je souhaite faire, je n'ai pas réussi à comprendre suffisamment bien le code pour l'adapter à mon cas.

Je me permets donc de poster cet "'au secours, à l'aide, j'en peux plus, je comprends pas!!"

Voilà : ce que je souhaite faire c'est copier un certain nombre de données présentes sur la feuille 1 de mon fichier, dans la feuille 2 de mon fichier, et cela en fonction du choix de deux variables présentes dans ma feuille 2 et via un bouton d'activation.

Afin d'être plus claire, j'ai préparé un fichier explicatif.

J'ai essayé de vous montrer sur la feuille 2, le résultat attendu.

66exemple.zip (9.06 Ko)

Je remercie infiniment les personnes qui pourront m'aider. Je suis vraiment bloquée et je cherche depuis plusieurs jours la solution... mais rien n'y fait, je ne trouve pas...

Einstein (je sais, suis pas Einstein, c'est ironique...)

Bonjour

Une solution par macro

Pour te rassurer Einstein ne connaissait rien au VBA

Bonjour banzai64,

Merci merci merci et merci encore pour ton aide et ta rapidité!

J'ai pu transposé ta macro sur mon fichier sans problèmes.

Cependant, je souhaite ajouter deux fois la même option et ça ne fonctionne pas. Je m'explique.

La partie de la macro :

For I = 4 To 6

If Cel.Offset(0, I) <> "" Then

Range("E" & Ligne) = Range("E" & Ligne) & "," & Cel.Offset(0, I)

End If

Next I

If Len(Range("E" & Ligne)) > 0 Then Range("E" & Ligne) = Mid(Range("E" & Ligne), 2)

Ligne = Ligne + 1

Set Cel = .FindNext(Cel)

qui permet de compiler les données des colonnes D à F de la feuille 1 pour les mettre dans la colonne E de la feuille 2.

Et bien, j'ai voulu ajouter cette option à une autre colonne de la feuille 2 en référence à deux autres colonnes de la feuille 1.

J'ai fait un copier/coller de cette partie, en modifiant "For I = 4 To 6" en "For K = 30 To 31", et j'ai modifié le reste du code dans ce sens, en spécifiant que le résultat devait aller dans la colonne G de la feuille 2. Le soucis c'est que ces deux actions n'arrivent pas à fonctionner ensemble. Je dois sans doute ajouter une ligne de code pour que la macro arrive à traiter ces deux actions en même temps. Mais laquelle??

Voici le résultat que j'obtiens :

  • sur la première ligne de résultat je n'ai pas de résultat dans la colonne G
  • sur la deuxième ligne, je n'ai que le résultat de la colonne G!!!

Bonne journée à toi!

Einstein

Bonjour

Places le code que tu rajoutes avant

Ligne = Ligne + 1

Sinon joins le fichier avec la macro modifiée

Bonjour à tous, salut Banzai,

Autre solution (filtre)

on peut ajouter des colonnes d'extraction (lesquelles ?)

Sub Filtre()
Dim Lg&, i%
  With Sheets("Feuil1")
    Lg = .Range("a" & Rows.Count).End(xlUp).Row
    '--- prépare ---
    .Columns("j").Insert
    .Range("j3") = .Range("d3")     'en-tête
    .Range("d3") = ""               'en-tête
    For i = 4 To Lg
        .Range("j" & i) = .Range("j" & i) & .Range("d" & i)
        If Not IsEmpty(.Range("e" & i)) Then .Range("j" & i) = .Range("j" & i) & "," & .Range("e" & i)
        If Not IsEmpty(.Range("f" & i)) Then .Range("j" & i) = .Range("j" & i) & "," & .Range("f" & i)
    Next i
    '--- filtre ---
    .Range("a3:k" & .[a65000].End(xlUp).Row).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
    Range("b6:c7"), CopyToRange:=Range("b21:e21"), Unique:=False
    '---
    .Range("d3") = .Range("j3")     'remet en-tête
    .Columns("j").Delete
  End With
End Sub

Amicalement

Claude

47einstein-filtre.zip (28.67 Ko)

Merci banzai64, ça marche!!!!!! Ca marche!!! C'est génial!! Merci encore

Merci beaucoup à toi également Claude, pour m'avoir proposé une autre solution.

Je vous souhaite à tous les deux une excellente journée.

Einstein

Rechercher des sujets similaires à "copie feuille fonction variables"