Copier lignes feuille vers feuille

loveur77

XLDnaute Nouveau
Bonjour,

Ne m'y connaissant pas du tout en macro je viens vers vous pour avoir voter aide.
J'ai fait quelque recherches sur le forum et j'ai trouver ce post archivés de 2004 d'une personne qui demandé la même chose que moi sauf que j'ai une condition supplémentaire.
Voici le post en question :
https://www.excel-downloads.com/threads/copier-lignes-feuille-vers-feuille.17429/

Par rapport à la macro de Delphine je voudrais rajouter une condition :
Je voudrais que la macro me renvoi la valeur sur un auter onglet dans le cas ou la cellule contient tel caractère.
Exemple : si dans ma colonne B j'ai TITI, TITI 1, TITI 2, TOTO, TOTO 1, TOTO2, TUTU, TUTU 1 et TUTU 2, je voudrais que la macro me recopie dans la feuille TITI toutes les lignes comportant TITI en B, en feuille TOTO toutes les lignes comportant TOTO et idem pour TUTU.

Merci d'avance pour votre aide et si j'ai pas été assez clair hésité pas à me le dire j'essayerai de tout réexpliquer ^^

Passer un bon réveillon ^^:)

edit : si possible rajouter une ligne dans la macro pour que cela marche aussi bien que si c'est écrit en minuscule ou en majuscule.
 
Dernière édition:

bqtr

XLDnaute Accro
Re : Copier lignes feuille vers feuille

Bonsoir loveur77,

Voici une façon de faire.

Code:
Option Compare Text
Private Sub CommandButton1_Click()

Dim i As Long, k As Long, x As Integer, j As Integer
Dim tablo()

x = 0
For k = 1 To Sheets.Count
  ReDim Preserve tablo(x)
  tablo(x) = Sheets(k).Name
  x = x + 1
Next

   For i = 1 To Range("B65536").End(xlUp).Row
       If Range("B" & i).Value <> "" Then
         For j = LBound(tablo) To UBound(tablo)
             If InStr(1, Range("B" & i).Value, tablo(j)) <> 0 Then
               With Sheets(tablo(j))
                 Range("A" & i).Resize(1, 3).Copy .Range("A" & .Range("A65536").End(xlUp).Offset(1, 0).Row)
               End With
             End If
         Next
       End If
   Next
    
End Sub

Tant que tu as des noms dans la colonne B de la feuil1 qui correspondent aux noms des feuilles les données seront transférées.

Cette instruction permet d'ignorer les majuscules et les minuscules.
Code:
Option Compare Text


A+ et joyeuses fêtes
 

Pièces jointes

  • essai1.zip
    11.1 KB · Affichages: 47
  • essai1.zip
    11.1 KB · Affichages: 45
  • essai1.zip
    11.1 KB · Affichages: 49

loveur77

XLDnaute Nouveau
Re : Copier lignes feuille vers feuille

bonjour tout le monde

J'espère que vous avez tous passé de bonne fetes et que le vieux barbu vous à bien gaté ^^

Sinon merci beaucoup bqtr pour cette joli Macro. C'est exactement cela que je voulais à un petit détail prêt. Chaque fois que j'active la Macro, cela me recopie à la suite les lignes déja copiées au préalable.
Que faudrait il rajouter à la macro pour qu'elle ne prenne en compte que les nouvelles informations qui non pas déja été copiée dans les différents onglets et qu'elle mette les lignes précédentes à jour ?

Merci beaucoup d'avance
 
Dernière édition:

bqtr

XLDnaute Accro
Re : Copier lignes feuille vers feuille

Bonjour,

La macro modifiée.

Code:
Option Compare Text
Private Sub CommandButton1_Click()

Dim i As Long, k As Long, x As Integer, j As Integer
Dim tablo()

x = 0
For k = 1 To Sheets.Count
  ReDim Preserve tablo(x)
  tablo(x) = Sheets(k).Name
  x = x + 1
Next
 
  For i = 1 To Range("B65536").End(xlUp).Row
      For j = LBound(tablo) To UBound(tablo)
        If Range("B" & i).Value = tablo(j) Then
           With Sheets(tablo(j))
             .Range("A2:C" & .Range("A65536").End(xlUp).Row).ClearContents
           End With
        End If
      Next
  Next

   For i = 1 To Range("B65536").End(xlUp).Row
       If Range("B" & i).Value <> "" Then
         For j = LBound(tablo) To UBound(tablo)
             If InStr(1, Range("B" & i).Value, tablo(j)) <> 0 Then
               With Sheets(tablo(j))
                 Range("A" & i).Resize(1, 3).Copy .Range("A" & .Range("A65536").End(xlUp).Offset(1, 0).Row)
               End With
             End If
         Next
       End If
   Next
Y a peut-être mieux à faire que de supprimer les données de chaque feuille avant le transfert.
Comment tu rentres tes données sur la feuille 1 ? Tu pourrais par exemple déclencher la macro quand tu valides une cellule particulière. (procédure événementielle sur la feuille 1)
Ex:
Tu remplis et valides A?, puis B? puis C? et c'est à ce moment là (validation de C?) que la transfert s'effectue.


Bonne journée
 

loveur77

XLDnaute Nouveau
Re : Copier lignes feuille vers feuille

En faites, mon tableau est un reporting que mon équipe remplit jour aprés jour concernant des expéditions sur l'international.

Dans une colonne j'ai mes différent fournisseurs et je dois en extraire trois et crée le meme reporting dans trois onglets différents avec toutes les informations que j'avez précédement dans mon reporting.

Il se peut, bien sur que des lignes soit insérées et que certaines informations soit modifiées.

Sinon je n'ai pas de validation particulière étant donné que la macro n'a pas besoin d'être déclenché tout le temp. Ce que je veux dire par la, c'est que je m'en servirais à peine une fois par semaine.

Edit: la macro ne marche pas dans le cas d'une troisième valeur. Pour les deux premiers onglets la macro ne répète pas les lignes, par contre pour la troisième si.

Quelqu'un aurait il une idée pour modifier la macro ?
 
Dernière édition:

bqtr

XLDnaute Accro
Re : Copier lignes feuille vers feuille

Bonjour loveur77,


J'ai fait une modif sur la deuxième macro.
Les données des feuilles TOTO et TITI sont effacées et remplacées par les nouvelles (les modifications faites sur les données déjà saisies sur la feuille 1 ainsi que les nouvelles). Si les infos d'un fournisseur ont été supprimées sur la feuille 1, elles ne seront plus présentes sur sa feuille après le transfert.

Donc les feuilles des fournisseurs auront toujours les dernières infos à jour.

Maintenant tu peux rajouter autant de fournisseur que tu veux à partir du moment où sa feuille existe. (Rajoute une feuille nommée TATA sur le fichier) en PJ

A+
 

Pièces jointes

  • 1essai1.zip
    11.8 KB · Affichages: 34

loveur77

XLDnaute Nouveau
Re : Copier lignes feuille vers feuille

Je reviens vers vous (ou toi qbtr) car j'essaye d'appliquer la macro à mon modèle et cela ne marche pas. J'ai une erreur 1004 et je ne comprend pas.

D'où peut venir le problème sur la macro sachant que ma recherche de fournisseurs ce fait sur la colonne P ?
 

Pièces jointes

  • MODELE REPORTING.zip
    17.2 KB · Affichages: 29
  • MODELE REPORTING.zip
    17.2 KB · Affichages: 25
  • MODELE REPORTING.zip
    17.2 KB · Affichages: 24

bqtr

XLDnaute Accro
Re : Copier lignes feuille vers feuille

Re,


J'ai modifié le code, il y avait quelques erreurs d'adaptation.

Bon journée
 

Pièces jointes

  • MODELE REPORTING.zip
    17.2 KB · Affichages: 60
  • MODELE REPORTING.zip
    17.2 KB · Affichages: 57
  • MODELE REPORTING.zip
    17.2 KB · Affichages: 57
Dernière édition:

Discussions similaires

Réponses
2
Affichages
546

Statistiques des forums

Discussions
312 503
Messages
2 089 055
Membres
104 013
dernier inscrit
VELONDAHY Mickaël