VBA Macro pour rechercher et copier

Bonjour,

j'ai un gros fichier excel et souhaiterai réaliser une macro, mais je sèche
Voici ce que je cherche à faire :

- chaque ligne de mon onglet DEPART contenant le mot TOTO en colonne J ou Z soit copiée / collée dans un nouvel onglet appelé TOTO
- chaque ligne de mon onglet DEPART contenant le mot SOLEIL en colonne J ou Z soit copiée / collée dans un nouvel onglet appelé SOLEIL
- chaque ligne de mon onglet DEPART contenant l'expression LES VACANCES en colonne J ou Z soit copiée / collée dans un nouvel onglet appelé LES VACANCES
- etc, etc.

Qui peut m'aider à créer ma macro ??
Un grand merci par avance,

Caroline

2 réponses

  1. bonjour,

    Lorsque l'on demande ce genre de choses, il faut être extrêmement précis.
    Pour le nom est en j ou en Z ??

    le mieux est de mettre une copie le fichier en cjoint.com

    en attendant voici le bout de code qu'il faudra peut être réadapté car j'ai pris 2 hypothèses :
    - ta colonne A est oujours renseigné
    - Si la colonne J est vide, alors on prned la valeur dans Z

    Sub x()

    i = 2
    'la macro tournera jusqu'à ce que la colonne A trouve une cellule vide
    Do While Sheets("DEPART").Cells(i, 1) <> ""

    'si la colonne j est vide, on cherche le nom dans la colonne Z
    If Sheets("DEPART").Cells(i, 10) <> "" Then
    nomfeuille = Sheets("DEPART").Cells(i, 10)
    Else
    nomfeuille = Sheets("DEPART").Cells(i, 26)
    End If

    ' on va regarder se la feuille existe déjà pour ajouter la ligne sur la feuille
    trouvve = 0
    For feuille = 1 To Sheets.Count
    If Sheets(feuille).Name = nomfeuille Then
    lignefeuille = 2
    Do While Sheets(feuille).Cells(lignefeuille, 1) <> ""
    lignefeuille = lignefeuille + 1
    Loop

    Sheets("DEPART").Rows(i).Copy Sheets(feuille).Cells(lignefeuille, 1)

    trouve = 1
    End If
    Next

    'si la feuille n'existe pas, on la créé
    If trouve = 0 Then
    Sheets.Add After:=ActiveSheet
    ActiveSheet.Name = Sheets("DEPART").Cells(i, 1)
    Sheets("DEPART").Rows(1).Copy Sheets(feuille).Cells(1, 1)
    Sheets("DEPART").Rows(i).Copy Sheets(feuille).Cells(2, 1)
    End If
    i = i + 1
    Loop

    End Sub
    0
    1. Merci mélanie. Le mot recherché peut être en colonne J mais il peut aussi etre en colonne Z, et dès lors qu'il est dans l'une ou l'autre des colonnes, alors oui je veux sélectionner la ligne pour la mettre dans l'onglet correspondant
      Caroline
      0
    2. Et mes colonnes J et Z sont systématiquement renseignées, donc pas de colonne vide
      0
    3. alors comment sait-on qu'il doit prendre la colonne j ou Z ????
      0
    4. Si dans la ligne 1 le mot recherché TOTO apparait dans la colonne J ou s'il apparait dans la colonne Z, alors copier l'ensemble de la ligne dans un autre onglet
      Si dans la ligne Z, le mot recherché TOTO apparait dans la colonne J ou s'il apparait dans la colonne Z, alors copier l'ensemble de la ligne dans un autre onglet
      ...

      J'ai déjà créé tous mes onglets ;)
      0
    5. ok alors ou se trouve le mot cherché ?
      dans une cellule, faut le demander à l'utilisateur ?
      0