Copie automatique ligne vers onglet
Résolu
GGble
-
GGble -
GGble -
Bonjour,
pourriez vous m'aider à créer une macro sous excel 2003 pour résoudre le problème suivant?
J'ai un onglet "database" contenant un tableau de plusieurs centaines de lignes tel que:
colonne A: une liste de noms (N1, N2, N3,...etc)
colonne B à colonne H: des chiffres
Et j'ai une série d'onglet "N1", "N2", "N3",...etc
Je souhaite que toutes les lignes comportant le nom "Ni" en colonne A de l'onglet "database" soient automatiquement copié dans l'onglet du même nom.
Je souhaite par ailleurs éviter qu'il y ait des lignes vides dans les onglets "Ni".
Merci pour vos conseils, je n'ai jamais fait de Macro.
pourriez vous m'aider à créer une macro sous excel 2003 pour résoudre le problème suivant?
J'ai un onglet "database" contenant un tableau de plusieurs centaines de lignes tel que:
colonne A: une liste de noms (N1, N2, N3,...etc)
colonne B à colonne H: des chiffres
Et j'ai une série d'onglet "N1", "N2", "N3",...etc
Je souhaite que toutes les lignes comportant le nom "Ni" en colonne A de l'onglet "database" soient automatiquement copié dans l'onglet du même nom.
Je souhaite par ailleurs éviter qu'il y ait des lignes vides dans les onglets "Ni".
Merci pour vos conseils, je n'ai jamais fait de Macro.
A voir également:
- Copie automatique ligne vers onglet
- Réponse automatique thunderbird - Guide
- Copie cachée - Guide
- Partager photos en ligne - Guide
- Copie écran samsung - Guide
- Copie disque dur - Guide
1 réponse
Bonjour,
Je viens de donner ce code à un autre intervenant du forum :
Pout l'utiliser :
- de ta feuille "database" taper ALT+F11
- Dans la fenêtre Visual Basic qui vient de s'ouvrir : Insertion/Modules
- copier/coller ce code dans cette fenêtre puis fermer Visual Basic
- pour l'utiliser depuis la feuille excel taper ALT+F8, choisir creation_onglets et cliquer sur exécuter.
Je viens de donner ce code à un autre intervenant du forum :
Sub creation_onglets() Dim Ws As Worksheet Dim trouve As Boolean Dim contenu As String Dim lig, derlig As Integer With Sheets("database") derlig = .Range("A65536").End(xlUp).Row For lig = 2 To derlig contenu = .Cells(lig, 1).Value For Each Ws In ThisWorkbook.Worksheets trouve = False If StrComp(Ws.Name, contenu, vbTextCompare) = 0 Then trouve = True Exit For End If Next Ws If trouve = True Then .Rows(lig).Copy Sheets(contenu).Range("A65536").End(xlUp).Offset(1, 0) Else Sheets.Add ActiveSheet.Name = contenu .Rows(lig).Copy Sheets(contenu).Range("A65536").End(xlUp).Offset(1, 0) End If Next lig End With End Sub
Pout l'utiliser :
- de ta feuille "database" taper ALT+F11
- Dans la fenêtre Visual Basic qui vient de s'ouvrir : Insertion/Modules
- copier/coller ce code dans cette fenêtre puis fermer Visual Basic
- pour l'utiliser depuis la feuille excel taper ALT+F8, choisir creation_onglets et cliquer sur exécuter.
merci pour ta réponse qui m'aide vraiment et qui marche!
Reste maintenant pour moi à comprendre le code et à l'adapter à mes besoins.
Bonne journée.
En espérant que ça t'aide.
Merci encore!!