Copier des données en fonction condition

Nathan -  
 Nathan -
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

5 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
    1. Nathan
       
      Bonjour,

      Et merci pour ta réponse, je vais essayer de suivre cette piste en continuant à me documenter sur le net.
      Merci encore !
      0
  2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
  3. Nathan
     
    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
  4. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
    1. Nathan
       
      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
    2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > Nathan
       
      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
    3. Nathan > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
       
      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
    4. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > Nathan
       
      Re,

      Vous avez ecrit que les noms d'onglet ne serait jamais les memes.
      Comment arrivent-ils dans votre fichier?
      0
    5. Nathan > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Nathan
     
    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
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      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
      1. Nathan > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
         
        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