Harmonisation VBA
Résolu/Fermé
zizou026
Messages postés
101
Date d'inscription
dimanche 1 février 2009
Statut
Membre
Dernière intervention
20 novembre 2024
-
Modifié le 22 déc. 2020 à 18:52
zizou026 - 31 déc. 2020 à 08:30
zizou026 - 31 déc. 2020 à 08:30
A voir également:
- Harmonisation VBA
- Mkdir vba ✓ - Forum VB / VBA
- Excel compter cellule couleur sans vba - Guide
- Vba range avec variable ✓ - Forum VB / VBA
- Autofill vba ✓ - Forum Excel
- L'indice n'appartient pas à la sélection vba ✓ - Forum Programmation
12 réponses
franc38
Messages postés
197
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
27 février 2023
38
23 déc. 2020 à 07:11
23 déc. 2020 à 07:11
Bonjour
Je ne comprends pas ce que tu veux faire?
ce sont les même données qui sont sur la Data_1 et Data_2 présentées différemment sauf la référence qui n'ai pas sur Data_2...
Ensuite tu parles de A1 à R et de A1 à X?
Les données tu les veux sur Données_Harmoniser ou sur toto tata?
C'est quoi les cellules titre (la 1ere ligne)?
A+ François
Je ne comprends pas ce que tu veux faire?
ce sont les même données qui sont sur la Data_1 et Data_2 présentées différemment sauf la référence qui n'ai pas sur Data_2...
Ensuite tu parles de A1 à R et de A1 à X?
Les données tu les veux sur Données_Harmoniser ou sur toto tata?
C'est quoi les cellules titre (la 1ere ligne)?
A+ François
franc38
Messages postés
197
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
27 février 2023
38
Modifié le 26 déc. 2020 à 09:09
Modifié le 26 déc. 2020 à 09:09
Bonjour
A+ François
Sub mamacro() Dim i As Long, dl As Long, lig As Long, sh As Worksheet Set sh = Sheets("Données_Harmoniser") sh.Range("A2:S" & Rows.Count).ClearContents dl = Sheets("Data_1").Range("A" & Rows.Count).End(xlUp).Row Sheets("Data_1").Range("A1:S" & dl).Copy Destination:=sh.Range("A1") lig = dl + 1 dl = Sheets("Data_2").Range("B" & Rows.Count).End(xlUp).Row For i = 2 To dl sh.Range("B" & lig) = Sheets("Data_2").Range("N" & i) sh.Range("C" & lig) = Sheets("Data_2").Range("M" & i) sh.Range("D" & lig) = Sheets("Data_2").Range("I" & i) lig = lig + 1 Next End Sub
A+ François
franc38
Messages postés
197
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
27 février 2023
38
26 déc. 2020 à 10:20
26 déc. 2020 à 10:20
Il suffit de modifier mamacro
A+ François
Sub mamacro()
Dim i As Long, dl As Long, lig As Long, sh As Worksheet
Set sh = Sheets("Données_Harmoniser")
sh.Range("A2:S" & Rows.Count).ClearContents
dl = Sheets("Data_1").Range("A" & Rows.Count).End(xlUp).Row
Sheets("Data_1").Range("A1:S" & dl).Copy Destination:=sh.Range("A1")
lig = dl + 1
dl = Sheets("Data_2").Range("B" & Rows.Count).End(xlUp).Row
For i = 2 To dl
sh.Range("A" & lig) = "En attente"
sh.Range("B" & lig) = Sheets("Data_2").Range("N" & i)
sh.Range("C" & lig) = Sheets("Data_2").Range("M" & i)
sh.Range("D" & lig) = Sheets("Data_2").Range("I" & i)
sh.Range("E" & lig) = Sheets("Data_2").Range("D" & i)
sh.Range("F" & lig) = Format(Sheets("Data_2").Range("B" & i), "00 000")
lig = lig + 1
Next
Range("A1:S1").Interior.ColorIndex = 15
Range("A1:A" & lig - 1).Interior.ColorIndex = 15
End Sub
A+ François
franc38
Messages postés
197
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
27 février 2023
38
Modifié le 30 déc. 2020 à 15:11
Modifié le 30 déc. 2020 à 15:11
Bonjour
Dans ce cas je te propose un filtre avancé
sur la feuille "Données_Harmoniser"
Dans les cellule A2:X8 tu saisis tes critères (exemple: en F2 75001, f3:75002, f4:75003)
tu clic sur la première ligne de la colonne qui a le plus de critère (ici f1)
Un inputbox te demandes le nom de la feuille ou il faut mettre les données filtrées
https://www.cjoint.com/c/JLEoiLrCChz
A+ François
Dans ce cas je te propose un filtre avancé
sur la feuille "Données_Harmoniser"
Dans les cellule A2:X8 tu saisis tes critères (exemple: en F2 75001, f3:75002, f4:75003)
tu clic sur la première ligne de la colonne qui a le plus de critère (ici f1)
Un inputbox te demandes le nom de la feuille ou il faut mettre les données filtrées
https://www.cjoint.com/c/JLEoiLrCChz
A+ François
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
franc38
Messages postés
197
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
27 février 2023
38
31 déc. 2020 à 07:46
31 déc. 2020 à 07:46
Bonjour
Il suffit de demander...
Bon réveillon à toi aussi
https://www.cjoint.com/c/JLFgTkM1SHz
A+ François
Il suffit de demander...
Bon réveillon à toi aussi
https://www.cjoint.com/c/JLFgTkM1SHz
A+ François
zizou026
Messages postés
101
Date d'inscription
dimanche 1 février 2009
Statut
Membre
Dernière intervention
20 novembre 2024
1
23 déc. 2020 à 08:31
23 déc. 2020 à 08:31
Bonjour franc38,
Par avance, je te remercie de ton aide.
Oui, c'est des données sont identique, Data_2 doit être dans le même format que Data_1.
La ligne A1 comporte les titres (je copie les données dans A2), je souhaite que dans un premier temps que toutes les données (Data_1 & Data_2) soient regroupés dans l'onglet (Données_Harmoniser).
Et, que ça soit classé par titre (onglet Tata, Toto) j'ai une vingtaine de variante.
Cordialement,
Zizou
Par avance, je te remercie de ton aide.
Oui, c'est des données sont identique, Data_2 doit être dans le même format que Data_1.
La ligne A1 comporte les titres (je copie les données dans A2), je souhaite que dans un premier temps que toutes les données (Data_1 & Data_2) soient regroupés dans l'onglet (Données_Harmoniser).
Et, que ça soit classé par titre (onglet Tata, Toto) j'ai une vingtaine de variante.
Cordialement,
Zizou
zizou026
Messages postés
101
Date d'inscription
dimanche 1 février 2009
Statut
Membre
Dernière intervention
20 novembre 2024
1
25 déc. 2020 à 23:11
25 déc. 2020 à 23:11
Bonsoir franc38,
Je te souhaites de très bonnes fêtes de fin d'année.
Aurez-tu l'amabilité de me dire comment faire la formule que pour les données ailles de A2 à X?
Je vais faire un macro et pourrais l'inclure dans celui-ci.
Encore merci pour ton aide.
Cordialement,
zizou
Je te souhaites de très bonnes fêtes de fin d'année.
Aurez-tu l'amabilité de me dire comment faire la formule que pour les données ailles de A2 à X?
Je vais faire un macro et pourrais l'inclure dans celui-ci.
Encore merci pour ton aide.
Cordialement,
zizou
zizou026
Messages postés
101
Date d'inscription
dimanche 1 février 2009
Statut
Membre
Dernière intervention
20 novembre 2024
1
Modifié le 26 déc. 2020 à 09:10
Modifié le 26 déc. 2020 à 09:10
Bonjour franc38,
Infiniment merci à toi pour ta proposition.
Avec ce macro comment faire pour écrire en attente dans les cellules vides de la colonne A de l'onglet Données_Harmoniser? Et mettre en gris la ligne titre et la colonne A?
Cordialement,
Zizou
Infiniment merci à toi pour ta proposition.
Avec ce macro comment faire pour écrire en attente dans les cellules vides de la colonne A de l'onglet Données_Harmoniser? Et mettre en gris la ligne titre et la colonne A?
Sub enattente() ' ' enattente Macro ' ActiveWindow.SmallScroll Down:=12 Range("A35").Select ActiveCell.FormulaR1C1 = "En attente" Range("A35").Select Selection.AutoFill Destination:=Range("A35:A67") Range("A35:A67").Select ActiveWindow.ScrollRow = 12 ActiveWindow.ScrollRow = 9 ActiveWindow.ScrollRow = 6 ActiveWindow.ScrollRow = 3 ActiveWindow.ScrollRow = 1 Range("A1:S1").Select ActiveWindow.ScrollColumn = 12 ActiveWindow.ScrollColumn = 8 ActiveWindow.ScrollColumn = 1 Range("A1:S1,A2:A67").Select Range("A2").Activate With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .ThemeColor = xlThemeColorDark1 .TintAndShade = -0.349986266670736 .PatternTintAndShade = 0 End With Range("B5").Select ActiveWorkbook.Save End Sub
Cordialement,
Zizou
zizou026
Messages postés
101
Date d'inscription
dimanche 1 février 2009
Statut
Membre
Dernière intervention
20 novembre 2024
1
27 déc. 2020 à 16:23
27 déc. 2020 à 16:23
Bonsoir franc38,
J'ai adapté ta formule et ça fonctionne bien, je te remercie.
Dans ce même tableau, je souhaite classer par groupe soit du 75001 à 75004 ou regroupé 75005 et 75013.
Les classer par groupe exemple : si colonne A 2020 = Toto (mettre le Toto en titre) voir fichier.
https://www.cjoint.com/c/JLBptEGaIyr
Encore merci franc38.
Cordialement,
zizou
J'ai adapté ta formule et ça fonctionne bien, je te remercie.
Dans ce même tableau, je souhaite classer par groupe soit du 75001 à 75004 ou regroupé 75005 et 75013.
Les classer par groupe exemple : si colonne A 2020 = Toto (mettre le Toto en titre) voir fichier.
https://www.cjoint.com/c/JLBptEGaIyr
Encore merci franc38.
Cordialement,
zizou
zizou026
Messages postés
101
Date d'inscription
dimanche 1 février 2009
Statut
Membre
Dernière intervention
20 novembre 2024
1
27 déc. 2020 à 22:38
27 déc. 2020 à 22:38
Bonsoir,
Comment faire pour que ça aille de A à X? (Voir fichier)
https://www.cjoint.com/c/JLBvLR4nvHr
Une formule générique, afin que je puisse utiliser dans le macro
Merci beaucoup pour votre aide.
Cordialement,
zizou
Comment faire pour que ça aille de A à X? (Voir fichier)
https://www.cjoint.com/c/JLBvLR4nvHr
Une formule générique, afin que je puisse utiliser dans le macro
Merci beaucoup pour votre aide.
Cordialement,
zizou
franc38
Messages postés
197
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
27 février 2023
38
>
zizou026
Messages postés
101
Date d'inscription
dimanche 1 février 2009
Statut
Membre
Dernière intervention
20 novembre 2024
28 déc. 2020 à 05:30
28 déc. 2020 à 05:30
Bonjour
ma solution....
A+ François
ma solution....
Sub Classement1234()
' Classement1234 Macro
Dim rep As String, lig As Long
Sheets("1234").Select
ActiveSheet.Cells.AutoFilter
Do While True
rep = InputBox("Saisir le critére ")
If rep = "" Then Exit Do
lig = Range("A" & Rows.Count).End(xlUp).Row + 2
ActiveSheet.Range("$A$1:$X$29").AutoFilter Field:=2, Criteria1:=rep
Range("A1:X26").Copy Destination:=Range("A" & lig)
ActiveSheet.Cells.AutoFilter
Loop
ActiveWorkbook.Save
End Sub
A+ François
zizou026
Messages postés
101
Date d'inscription
dimanche 1 février 2009
Statut
Membre
Dernière intervention
20 novembre 2024
1
29 déc. 2020 à 22:01
29 déc. 2020 à 22:01
Bonsoir franc38,
Merci pour ta formule, je l'ai essayé, le InputBox est trop lourd pour le fichier de base.
En effet, j'ai plus d'une cinquantaine d'Items pour plus de vingt profil (> vingt onglet avec le profil).
L'idéal serait une formule qui regroupe chaque Item l'un en dessous de l'autre et que ça supprime les données initiales de la feuille (exemple 1234).
Encore un grand merci pour ton aide.
Je te souhaite une excellente soirée.
Cordialement,
zizou
Merci pour ta formule, je l'ai essayé, le InputBox est trop lourd pour le fichier de base.
En effet, j'ai plus d'une cinquantaine d'Items pour plus de vingt profil (> vingt onglet avec le profil).
L'idéal serait une formule qui regroupe chaque Item l'un en dessous de l'autre et que ça supprime les données initiales de la feuille (exemple 1234).
Encore un grand merci pour ton aide.
Je te souhaite une excellente soirée.
Cordialement,
zizou
zizou026
Messages postés
101
Date d'inscription
dimanche 1 février 2009
Statut
Membre
Dernière intervention
20 novembre 2024
1
31 déc. 2020 à 07:23
31 déc. 2020 à 07:23
Bonjour franc38,
Merci, Merci et Merci, tes formules m'ont beaucoup aidées à mettre en place le tableau.
J'ai créé les onglets, comme tu l'as suggéré j'ai utilisé le filtre élaboré.
Le fait que maintenant les données sont filtrées et classée en ordre dans chaque onglet, j'ai juste besoin l’insertion de 3 lignes à la fin de chaque Items voir fichier :
https://www.cjoint.com/c/JLFgvAOfiUr
Je te souhaite un très bon réveillon et encore merci.
Cordialement,
Zizou
Merci, Merci et Merci, tes formules m'ont beaucoup aidées à mettre en place le tableau.
J'ai créé les onglets, comme tu l'as suggéré j'ai utilisé le filtre élaboré.
Le fait que maintenant les données sont filtrées et classée en ordre dans chaque onglet, j'ai juste besoin l’insertion de 3 lignes à la fin de chaque Items voir fichier :
https://www.cjoint.com/c/JLFgvAOfiUr
Je te souhaite un très bon réveillon et encore merci.
Cordialement,
Zizou
Excellent mille merci, je renouvelle mes remerciements à toi, à toutes les personnes qui nous viennent en aide, nous donne de leurs temps ainsi qu'à CMM. Sois prudent et prends soins de toi franc38.
Heureusement que vous êtes là, c'est génial quoi.
Excellente fêtes de fin d'année.
Cordialement,
zizou
Heureusement que vous êtes là, c'est génial quoi.
Excellente fêtes de fin d'année.
Cordialement,
zizou