[Excel-VBA] décomposer une feuille
Résolu
deus
Messages postés
93
Statut
Membre
-
deus Messages postés 93 Statut Membre -
deus Messages postés 93 Statut Membre -
Bonjour à tous,
Dans une classeur excel, j'ai une feuille principale qui contient les champs suivants :
Branch - type - source - nom
A - 1 - 2 - pipo
A-1-3- nico
A-2-4-test
B-1-2-toto
...
C-2-5-lolo
....
D-5-6-test
Cette feuille est ordonnée sur le champ Branch .
Je voudrais, au moyen d'une macro VBA, décomposer cette feuille principale pour avoir une feuille par Branch (çàd : une feuille avec toutes le lignes commencant par A, par B,...)
Pour copy/coller et créer/nommer une nouvelle feuille pas de souci.
Mon problème réside dans le fait de déterminer dynamiquement la Range à copier sur base de la valeur du champ branch
J'espère avoir été suffisament clair.
merci
Nicolas
Dans une classeur excel, j'ai une feuille principale qui contient les champs suivants :
Branch - type - source - nom
A - 1 - 2 - pipo
A-1-3- nico
A-2-4-test
B-1-2-toto
...
C-2-5-lolo
....
D-5-6-test
Cette feuille est ordonnée sur le champ Branch .
Je voudrais, au moyen d'une macro VBA, décomposer cette feuille principale pour avoir une feuille par Branch (çàd : une feuille avec toutes le lignes commencant par A, par B,...)
Pour copy/coller et créer/nommer une nouvelle feuille pas de souci.
Mon problème réside dans le fait de déterminer dynamiquement la Range à copier sur base de la valeur du champ branch
J'espère avoir été suffisament clair.
merci
Nicolas
A voir également:
- [Excel-VBA] décomposer une feuille
- Liste déroulante excel - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Déplacer une colonne excel - Guide
- Word et excel gratuit - Guide
- Verrouiller cellule excel sans verrouiller la feuille - Guide
1 réponse
Salut,
j'ai résolu mon problème
Pour ceux que ca interessent voici la macro que j'utilise
Sub SplitSheets()
'
' Macro2 Macro
' Macro recorded 17/11/2006 by f4y840
'
'
Dim strBranch As String 'branchcode
Dim nBranch As Integer 'nbr of branch
nBranch = Sheets("Branch").Cells.Find("*", Range("A1"), , , xlByRows, xlPrevious).Row - 1
For i = 2 To nBranch + 1
strBranch = Sheets("Branch").Cells(i, 1)
If strBranch <> "" Then
Sheets("Data").Select
Range("A1:K1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:=strBranch
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Empty").Select
Sheets.Add
'ActiveSheets.Select
ActiveSheet.Name = strBranch
ActiveSheet.Paste
Columns("B:B").EntireColumn.AutoFit
Columns("C:C").EntireColumn.AutoFit
Sheets("Data").Select
Range("A1:K1").Select
Selection.AutoFilter
'Range("E7").Select
End If
Next i
End Sub
j'ai résolu mon problème
Pour ceux que ca interessent voici la macro que j'utilise
Sub SplitSheets()
'
' Macro2 Macro
' Macro recorded 17/11/2006 by f4y840
'
'
Dim strBranch As String 'branchcode
Dim nBranch As Integer 'nbr of branch
nBranch = Sheets("Branch").Cells.Find("*", Range("A1"), , , xlByRows, xlPrevious).Row - 1
For i = 2 To nBranch + 1
strBranch = Sheets("Branch").Cells(i, 1)
If strBranch <> "" Then
Sheets("Data").Select
Range("A1:K1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:=strBranch
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Empty").Select
Sheets.Add
'ActiveSheets.Select
ActiveSheet.Name = strBranch
ActiveSheet.Paste
Columns("B:B").EntireColumn.AutoFit
Columns("C:C").EntireColumn.AutoFit
Sheets("Data").Select
Range("A1:K1").Select
Selection.AutoFilter
'Range("E7").Select
End If
Next i
End Sub