Report de données sous conditions via un bouton

heparti

XLDnaute Occasionnel
Bonjour,

Je fais à nouveau appel à vos connaissances concernant des reports de données de plusieurs feuilles vers une feuille, sous conditions.

Voici le détail de ma demande (Cf pièce jointe) :

- via un bouton sur chaque feuille nommée "vers1, vers2, vers3, vers4" vers la feuille "ajust"
- feuille "vers1", la 1ère ligne remplie en reportant les colonnes vers la 1ère ligne vide de la feuille "ajust" :
- "col1" vers la feuille "ajust"; "col1",
- "Col2" vers la feuille "ajust", "col2",
- "Col3" ou "Col4" si l'une ou l'autre est complétée vers la feuille "Col3 ou Col4"
- "Col5" ou "Col6" si l'une ou l'autre est complétée vers la feuille "Col5 ou Col6"

Je souhaite que le bouton présent sur chaque feuille "versX" ne recopie que sa propre feuille, et que chaque ligne des feuilles "versX" se recopie à la suite des recopies précédentes.

Je pense que l'exemple en pièce jointe vous aidera à comprendre ma demande.

Merci pour votre aide ;)
 

Pièces jointes

  • Test_Etats.xls
    54 KB · Affichages: 30
  • Test_Etats.xls
    54 KB · Affichages: 31
  • Test_Etats.xls
    54 KB · Affichages: 31

sousou

XLDnaute Barbatruc
Re : Report de données sous conditions via un bouton

Bonjour
Un petit code qui devrait t'aider.
Il va s"en dire que dans l'état de ta question, les lignes des feuilles versXXX ne sont pas effacées, et que si tu click une seconde fois sur le bouton elles seront ajoutées de nouveau.
 

Pièces jointes

  • Test_Etats.xls
    67 KB · Affichages: 36
  • Test_Etats.xls
    67 KB · Affichages: 33
  • Test_Etats.xls
    67 KB · Affichages: 28

heparti

XLDnaute Occasionnel
Re : Report de données sous conditions via un bouton

Merci pour ton aide et le code que tu proposes qui fonctionne très bien.

Après quelques tests, je m'aperçois que si je supprime le contenu des cellules de la feuille "ajust", la recopie des feuilles "versxx" ne se fait plus.

Peux-tu remédier à ce petit problème ?

Merci en tout cas pour ton aide ;)
 

sousou

XLDnaute Barbatruc
Re : Report de données sous conditions via un bouton

Bonjour

C'est du à la structure de ton fichier tel qu'il est dans ton exemple. (des données en dessous de ton tableau)
Le calcul de la cellule xldown, est toujours délicat.
Il faudrait voir dans ton fichier réel.
L'idéal serait d'avoir une valeur dans la cellule a15 et une dans la cellule a16, et remplacer dans le code a17 par a15
 

heparti

XLDnaute Occasionnel
Re : Report de données sous conditions via un bouton

Merci pour la modification que je viens de teste et qui fonctionne. Je peux maintenant supprimer les données de la feuille "ajust" et recopier ensuite ;)

Par contre, si je clique sur plusieurs feuilles pour la recopie, ça écrase les données recopiées, ça ne recopie pas à la suite, c'est à dire à la première ligne vide.
 

sousou

XLDnaute Barbatruc
Re : Report de données sous conditions via un bouton

Bonjour.
Peux-tu me renvoyer ton dernier fichier, et me préciser:
"Si je clique sur plusieurs feuilles"
Si tu cliques sur les boutons les uns derrières les autres
Si tu sélectionnes plusieurs feuilles à la fois
......
 

heparti

XLDnaute Occasionnel
Re : Report de données sous conditions via un bouton

Bonjour,

Alors, je viens de refaire un fichier de test que tu trouveras en pièce jointe.

Pour répondre à tes interrogations,

"Si je clique sur plusieurs feuilles" =} les lignes reportées écrasent ce qui a été déjà reporté sur "ajust"

Si tu cliques sur les boutons les uns derrières les autres =} les lignes reportées écrasent ce qui a été déjà reporté sur "ajust"

Si tu sélectionnes plusieurs feuilles à la fois =} seules les lignes de la feuille sur laquelle je suis sont reportées et écrasent les lignes présentes dans "ajust"
 

Pièces jointes

  • Test_Etatsd.xls
    69 KB · Affichages: 32

Paf

XLDnaute Barbatruc
Re : Report de données sous conditions via un bouton

Bonjour à tous

une petite modif du code de sousou (qui ne m'en voudra peut-être pas) pour écrire les données à la suiteà la suite

Code:
Sub vers()
 Set source = ActiveSheet.Range("a16")
 '**** Début Modif
 Decal = Sheets("ajust").Range("a17").CurrentRegion.Rows.Count
 Set dest = ThisWorkbook.Sheets("ajust").Range("a17").Offset(Decal, 0)
 '**** Fin Modif
 n = 0
 While source.Offset(n, 0) <> ""
 Call copie(source.Offset(n, 0), dest.Offset(n, 0))

 n = n + 1
 Wend
End Sub

Bonne suite
 

Paf

XLDnaute Barbatruc
Re : Report de données sous conditions via un bouton

Re,

avec la prise en compte d'éventuelle sélection de plusieurs feuilles

Code:
Sub vers()
 For Each MaFeuille In ActiveWindow.SelectedSheets
    Set source = MaFeuille.Range("a16")
    Decal = Sheets("ajust").Range("a17").CurrentRegion.Rows.Count
    Set dest = Sheets("ajust").Range("a17").Offset(Decal, 0)
    n = 0
    While source.Offset(n, 0) <> ""
        Call copie(source.Offset(n, 0), dest.Offset(n, 0))
        n = n + 1
    Wend
 Next MaFeuille
End Sub

Bonne suite
 

heparti

XLDnaute Occasionnel
Re : Report de données sous conditions via un bouton

Merci beaucoup Paf pour ta contribution ;)

Les premiers tests effectués à l'instant semblent valider ton code. Je continue les tests cette fin de semaine et je reposterai pour confirmer ou remonter un problème :D

Encore merci :cool:
 

Discussions similaires

Statistiques des forums

Discussions
312 294
Messages
2 086 896
Membres
103 404
dernier inscrit
sultan87