Copie de données selon critères+Bouton Macro

Résolu/Fermé
NaXiLeAn Messages postés 112 Date d'inscription mercredi 27 juillet 2016 Statut Membre Dernière intervention 2 juin 2020 - 30 déc. 2016 à 15:32
NaXiLeAn Messages postés 112 Date d'inscription mercredi 27 juillet 2016 Statut Membre Dernière intervention 2 juin 2020 - 2 janv. 2017 à 18:59
Bonjour,

Dans un fichier Excel, avec un nombre de lignes variables (export depuis application),
J'aimerais copier dans un nouvel onglet qui se nommera Liste_Edit (à créer) certaines informations d'une ligne Excel en fonction de critère de plusieurs colonne... Je m'explique :
La ligne 1 = Titre de A à DE
Ligne 2 et suivantes = contiennent les données.

Si colonne AE="Récolte" & colonne BU>0 & colonne G="Vert" Alors copier les données des colonnes B, j, i, et BU

De plus, et je ne sais pas si cela est possible : J'aimerais qu'un bouton VBA soit créé sur la feuille tout juste créée "Liste_Edit" et affecté a une macro déjà créée. Avec pour texte du bouton "Editer" et nom de macro "Imprim_Toi"

Merci par avance pour votre aide,


A voir également:

1 réponse

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
30 déc. 2016 à 22:42
Bonjour NaXiLeAn,

Voici un petit classeur test qui devrait remplir la mission que tu nous as proposée.

https://www.cjoint.com/c/FLEvN2B47jl

Tu devrais pouvoir tirer la macro dans ton classeur.
3
NaXiLeAn Messages postés 112 Date d'inscription mercredi 27 juillet 2016 Statut Membre Dernière intervention 2 juin 2020 1
2 janv. 2017 à 10:07
Bonjour Gbinforme,
Je te souhaite une excellente année 2017.
Merci pour le fichier, je l'étudie de prêt.
Si je souhaite modifier la colonne de destination des données, à quelle endroit puis-je le faire?
Encore merci pour ton aide, ton fichier est vraiment généralissime.
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
2 janv. 2017 à 11:07
Bonjour NaXiLeAn et bonne année 2017,

Si je souhaite modifier la colonne de destination des données
Pour les titres et les données tu as ce code :
                For col = 0 To UBound(cls)
                    ws.Cells(lgs, col + 1).Value = wo.Cells(lgo, cls(col)).Value

Comme col commence à zero, le "+ 1" le met en colonne A si tu le veux en F tu remplaces par "+ 6"
0
NaXiLeAn Messages postés 112 Date d'inscription mercredi 27 juillet 2016 Statut Membre Dernière intervention 2 juin 2020 1
2 janv. 2017 à 15:19
Merci,
Mais si je souhaite mettre les données dans un ordre qui ne se suit pas, est que cela irait?

On Error GoTo 0
lgs = ws.UsedRange.Rows.Count + 1
For lgo = 2 To wo.UsedRange.Rows.Count
If LCase(wo.Cells(lgo, "AE")) = "récolte" _
And wo.Cells(lgo, "BU") > 0 _
And LCase(wo.Cells(lgo, "G")) = "vert" Then
For col = 0 To UBound(cls)
'ws.Cells(lgs, col + 1).Value = wo.Cells(lgo, cls(col)).Value
'Next col
'lgs = lgs + 1
ws.Cells(lgs, "B").Value = wo.Cells(lgo, "G").Value '(la donnée de la colonne G va en colonne B sur l'onglet créé?
ws.Cells(lgs,"E" ).Value = wo.Cells(lgo, "J" & " " &"I").Value '(la concaténation des données des colonne I & J va en colonne E sur l'onglet créé?
End If
Next lgo


Je considère que tu as entièrement répondu à mon poste et je vais mettre le poste en résolu... J'essai juste de comprendre le code pour pouvoir le réutiliser ensuite.
Emcore merci Gbinforme.
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
2 janv. 2017 à 17:12
Bonsoir,

Petite erreur de syntaxe soulignée et il te manque "BU" peut-être
    For lgo = 2 To wo.UsedRange.Rows.Count
If LCase(wo.Cells(lgo, "AE")) = "récolte" _
And wo.Cells(lgo, "BU") > 0 _
And LCase(wo.Cells(lgo, "G")) = "vert" Then
ws.Cells(lgs, "B").Value = wo.Cells(lgo, "G").Value '(la donnée de la colonne G va en colonne B sur l'onglet créé?
ws.Cells(lgs, "E").Value = wo.Cells(lgo, "J").Value & " " & wo.Cells(lgo, "I").Value '(la concaténation des données des colonne I & J va en colonne E sur l'onglet créé?
lgs = lgs + 1
End If
Next lgo

Il te faut peut-être aussi rectifier de même la création ligne titre.

J'essai juste de comprendre le code pour pouvoir le réutiliser ensuite
Tu as tout à fait raison, en informatique il vaut mieux comprendre que copier les yeux bandés. ;-)
0
NaXiLeAn Messages postés 112 Date d'inscription mercredi 27 juillet 2016 Statut Membre Dernière intervention 2 juin 2020 1
2 janv. 2017 à 17:23
Effectivement,
Mes données se succèdent sans cas particulier ni concaténation.
J'avais bien BU mais je n'ai pas encore testé ta modif.
J'ai effectivement besoin de modifier mes titres de colonnes, réorganiser mes colonnes et ajouter quelques informations.
Je pensais pouvoir m'en sortir en "bidouillant" mais ça n'est pas si simple...
Destination : données depuis le fichier source
A : données de la B
B : Date du jour
C : données de la colonne G
D : colonne vide avec pour titre "Numéro"
E : concaténer(j; " "; i)
E : données de la colonne BU
G : colonne contenant "date du" & format(Month(Date) - 1;"mm-yyyy")
H : données de la B
Comment faire simple, quand on peut faire compliqué...

J'apprends grâce aux réponses que je reçois sur le forum.
Je m'étonne même à présent de pouvoir répondre (un peu) aux autres et à créer des codes seule!!!!! 8)
0