Trier et copier automatiquement les lignes sur différents onglet
Sandra Marie
-
Sandra-Marie Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Sandra-Marie Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
J'aurai besoin d'aide avec un classeur de suivi que j'essaie de mettre au point.
J'ai un onglet général avec une cinquantaine de lignes et d'autres onglets: 2010, 2011 etc...
La colonne Q est rempli de dates. Et ce sont ces dates que je voudrais utiliser comme critère pour que les lignes soient automatiquement copié depuis l'onglet général vers les onglets correspondant selon les années.
Est-ce quelqu'un saurait comment faire?
Merci d'avance
J'aurai besoin d'aide avec un classeur de suivi que j'essaie de mettre au point.
J'ai un onglet général avec une cinquantaine de lignes et d'autres onglets: 2010, 2011 etc...
La colonne Q est rempli de dates. Et ce sont ces dates que je voudrais utiliser comme critère pour que les lignes soient automatiquement copié depuis l'onglet général vers les onglets correspondant selon les années.
Est-ce quelqu'un saurait comment faire?
Merci d'avance
A voir également:
- Trier et copier automatiquement les lignes sur différents onglet
- Comment trier par ordre alphabétique sur excel - Guide
- Logiciel pour trier les photos automatiquement - Guide
- Raccourci rouvrir onglet fermé - Guide
- Comment copier une vidéo youtube - Guide
- Super copier - Télécharger - Gestion de fichiers
2 réponses
Essayez ce code avec comme prérequis :
1) votre feuille globale est la première de votre classeur
2) vous avez bien créé les feuilles pour toutes les années différentes de la colonne Q, ces années en colonne Q sont sous le format "aaaa" -> 2010 par exemple. Si vous avez une date entière (01/01/2010), alors utilisez une autre colonne avec la fonction ANNEE()
Le code vba à utiliser dans le workbook est le suivant:
1) votre feuille globale est la première de votre classeur
2) vous avez bien créé les feuilles pour toutes les années différentes de la colonne Q, ces années en colonne Q sont sous le format "aaaa" -> 2010 par exemple. Si vous avez une date entière (01/01/2010), alors utilisez une autre colonne avec la fonction ANNEE()
Le code vba à utiliser dans le workbook est le suivant:
Sub test()
With Sheets(1)
Dim DernLigne As Long
DernLigne = Sheets(1).Cells.SpecialCells(xlCellTypeLastCell).Row
For i = 2 To DernLigne
If Len(Sheets(1).Cells(i, 17).Value) = 4 Then
Dim Nomf As String
Nomf = Sheets(1).Cells(i, 17).Value
Dim m As Long
On Error GoTo PbNomf
m = Sheets(Nomf).Range("Q" & Rows.Count).End(xlUp).Row + 1
Sheets(Nomf).Rows(m).Value = Sheets(1).Rows(i).Value
PbNomf:
End If
Next i
End With
End Sub
je vais essayer dès demain matin!