Copier des données en fonction condition

Fermé
Nathan - 2 févr. 2021 à 09:55
 Nathan - 3 févr. 2021 à 19:43
Bonjour,

Je souhaite copier les données vers une feuille Bilan en fonction d'une condition.
Si mes onglets dans mon classeur sont de couleur rouge alors je copie les colonnes et les places sur ma feuille Bilan les une après les autres en fonction de l'ordre des onglets.

J'ai essayé ceci :

For Each Ws In Worksheets
    If Ws.Tab.Color = vbRed Then
        Range("A1:B1").Copy
        Sheets("Bilan").Select
        ActiveSheet.Paste
    End If
Next Ws 


Merci d'avance pour votre aide.


Configuration: Windows / Edge 18.17763
A voir également:

5 réponses

f894009 Messages postés 16750 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 3 décembre 2022 1 660
Modifié le 3 févr. 2021 à 08:53
Bonjour,

Premiere etape:
Ajouter une feuille Fichiers
Lire le repertoire ou sont les fichiers, ecrire les noms en colonne A et trier ce tableau par ordre alphabetique.
un exemple pour le tri
Sub TriAlpha()
        Range("A1:Z1000").Sort Key1:=Range("A1"), Order1:=xlAscending
End Sub


Etes vous en mesure de coder ceci?

pour la suite:
subsiste le probleme des fichiers deja traites les fois precedentes
1
Bonjour,

Et merci pour ta réponse, je vais essayer de suivre cette piste en continuant à me documenter sur le net.
Merci encore !
0
f894009 Messages postés 16750 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 3 décembre 2022 1 660
2 févr. 2021 à 10:12
Bonjour,

je copie les colonnes
Colonnes entiere vide compris ou plage de cellules le tout sans condition?

en fonction de l'ordre des onglets.
Quel ordre?
0
Bonjour,

Excusez moi pour mon imprécision, Il y aura toujours que deux colonnes à chaque fois par onglet rouge, (de A1:A703 et B1:B703). L'idée étant de parcourir le premier onglet rouge dans l'ordre de présence dans le classeur, copier les deux colonnes ci-dessus et les coller dans l'onglet Bilan les unes à coté des autres.
Pour le premier onglet rouge dans A et B pour le second dans C et D(pour pas écraser les deux premières, etc...)

J'espère avoir été plus compréhensible ?

Merci pour ton aide.
0
f894009 Messages postés 16750 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 3 décembre 2022 1 660
2 févr. 2021 à 10:26
Re

le premier onglet rouge dans l'ordre de présence

Par rapport a "Bilan". Faudra pas changer les feuilles de place.
Ces feuilles n'ont pas de noms?
Vous pourriez cette liste dans une feuille pour avoir l'ordre de test
0
Le souci du nom des feuilles est que je souhaite pouvoir exécuter cette macro sur plusieurs classeurs avec cette même condition, mais le nom des feuilles ne sera jamais les mêmes.

Pour différencier chaque onglet à l'intérieur des feuilles j'applique une première macro qui renomme le nom des colonnes de chaque onglet avec ce même nom d'onglet.

Exemple si un onglet se nomme Test et que à l'intérieur j'ai deux colonnes qui se nomme A et B alors elles deviendront A_Test et B_Test.

Donc dans Bilan on aurait :
A_Test pour la colonne A
B_Test pour la colonne B
A_Test2 pour la colonne C
etc..
Je ne sais pas si ça peut vous aider ?

Voici le code pour le changement de nom de colonne en rapport avec l'onglet si ça peut intéresser quelqu'un :

Sub Macro1()
Dim Ws As Worksheet
For Each Ws In Worksheets
   Ws.Select
   Ws.Name = Ws.Name & "_" & Range("A1").Value
   Next Ws

Worksheets(1).Select

End Sub


Sub macro2()

Dim Ws As Worksheet

For Each Ws In Worksheets


i = 0

With Ws
Ws.Select
dc = .Cells(1, Columns.Count).End(xlToLeft).Column
            For i = 1 To dc
            Cells(1, i).Value = Cells(1, i).Value & "_" & Ws.Name
            Next


End With
Next Ws


End Sub


0
f894009 Messages postés 16750 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 3 décembre 2022 1 660 > Nathan
2 févr. 2021 à 10:46
Re,
changement de nom de colonne en rapport avec l'onglet
Le premier code change le nom de l'onglet en fonction de la cellule A1 de la feuille.
Et qu'est ce qu'il y a dans cette cellule qui permet d'avoir un ordre de test des onglets, pige pas votre logique

Le deuixeme code change le nom d'entete et idem precedement.
0
Nathan > f894009 Messages postés 16750 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 3 décembre 2022
2 févr. 2021 à 11:05
J'ai fait une erreur dans mon précédent message en plaçant la macro 1, c'est la seconde qui s'occupe du changement de nom de colonne par rapport à l'onglet.

Malheureusement non, il n'y a rien dans cette cellule qui puisse déterminer un ordre.

Je pensais qu'avec Excel en parcourant les onglets de couleur rouge, on pouvait copier leur contenu les uns à la suite des autres dans l'onglet Bilan.

C'est sur cette phrase que repose ma demande.

J'espère avoir été compréhensible cette fois si,

Merci pour ton aide en tout cas.
0
f894009 Messages postés 16750 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 3 décembre 2022 1 660 > Nathan
2 févr. 2021 à 11:19
Re,

Vous avez ecrit que les noms d'onglet ne serait jamais les memes.
Comment arrivent-ils dans votre fichier?
0
Nathan > f894009 Messages postés 16750 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 3 décembre 2022
2 févr. 2021 à 11:53
Je parcours des fichiers dans un dossier en récupérant une partie du nom du fichier pour en créer un onglet. Puis je vais récupérer dans ces dits fichiers deux colonnes qui sont mes colonnes A et B.
Et pour terminer, je colore ces nouveaux onglets en rouges. Je pourrais les mettre directement dans l'onglet Bilan, sauf que les colonnes de chacun des fichiers ou je vais récupérer les valeurs portent le même nom. Seul les valeurs à l'intérieur changent.

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Oui c'est exactement ça, l'ordre alphabétique dans le dossier.

A vrai dire la coloration des onglets en rouge c'était plutôt une possibilité de récupérer leur valeur mais à vrai dire qu'il soit incolore ou rouge, peu importe, je souhaite juste récupérer les valeurs.

Pour la 2 partie, je récupère pour tous les fichiers présents dans mon dossier, 2 colonnes, toutes présentes dans un onglet du même nom. C'est pour cela que pour les différencier dans mon fichier ou se trouve ma macro, je renomme les onglets avec le nom des fichiers ou j'ai récupéré les colonnes.

J'espère ne pas être trop brouillon dans mes explications.
0
f894009 Messages postés 16750 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 3 décembre 2022 1 660
2 févr. 2021 à 18:29
Re,
Ok, ça s'éclaircit.
Quelles sont vos connaissances en VBA car il y deux façons de faire.
Suivant le nombre de fichier à tester, ouverture des fichiers un par un avec du code "simple" ou passer par des connexions ado, c'est aussi une ouverture mais vraiment differente
0
Nathan > f894009 Messages postés 16750 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 3 décembre 2022
2 févr. 2021 à 18:33
Merci encore pour votre aide,

De mon coté j'ai de très légère connaissance en VBA, l'ouverture des fichier un par un puis fermeture est la façon dont je fonctionne actuellement.
Je pense que cette première méthode serait la plus pour moi à comprendre.
Cependant je n'ai jamais entendu parler des connexions ado.
0