Bonjour tout le monde
J'ai réussi à retrouver parmis plusieurs informations ici ou là un code VBA qui m'intéresse au plus au point.
En fait, j'ai une dizaine d'onglets et je veux les mixer tout simplement.
Ce code est presque parfait, son seul défaut est qu'il ne prend pas en charge les hauteurs et largeurs des colonnes que j'ai personnalisé.
Etant une énorme quiche en VBA... si l'un d'entre vous peut m'aider !
Code :
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim Feuille As Worksheet
Dim l As Integer
Sheets.Add ' ajout d'une feuille sur laquelle on combine toutes les autres
ActiveSheet.Name = "Nomenclature finale" 'cette feuille portera le nom final
k = 1 'initialisation de la variable k
l = 1 'initialisation de la variable l
For Each Feuille In ActiveWorkbook.Worksheets 'on repete l'action pour toutes les feuilles du fichier
If Feuille.Name <> "Nomenclature finale" Then 'sauf sur la feuille finale
i = Feuille.UsedRange.Rows.Count 'nombre de lignes de la feuille actuelle
j = Feuille.UsedRange.Columns.Count 'nombre de colonnes de la feuille actuelle
Feuille.Select 'on selectionne la feuille
If l = 1 Then 'si première feuille on copie aussi les titres (première ligne)
Range(Cells(1, 1), Cells(i, j)).Select
Else
Range(Cells(2, 1), Cells(i, j)).Select 'sinon on copie qu'à partir de la ligne 2
End If
Selection.Copy
Sheets("Nomenclature finale").Select
Cells(k, 1).Select 'on sélectionne la première ligne vide
ActiveSheet.Paste 'on colle les données de la feuille actuelle
If l = 1 Then
k = k + i 'k = première ligne vide
Else
k = k + i - 1
---
Un grand merci par avance,
Mezou
J'ai réussi à retrouver parmis plusieurs informations ici ou là un code VBA qui m'intéresse au plus au point.
En fait, j'ai une dizaine d'onglets et je veux les mixer tout simplement.
Ce code est presque parfait, son seul défaut est qu'il ne prend pas en charge les hauteurs et largeurs des colonnes que j'ai personnalisé.
Etant une énorme quiche en VBA... si l'un d'entre vous peut m'aider !
Code :
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim Feuille As Worksheet
Dim l As Integer
Sheets.Add ' ajout d'une feuille sur laquelle on combine toutes les autres
ActiveSheet.Name = "Nomenclature finale" 'cette feuille portera le nom final
k = 1 'initialisation de la variable k
l = 1 'initialisation de la variable l
For Each Feuille In ActiveWorkbook.Worksheets 'on repete l'action pour toutes les feuilles du fichier
If Feuille.Name <> "Nomenclature finale" Then 'sauf sur la feuille finale
i = Feuille.UsedRange.Rows.Count 'nombre de lignes de la feuille actuelle
j = Feuille.UsedRange.Columns.Count 'nombre de colonnes de la feuille actuelle
Feuille.Select 'on selectionne la feuille
If l = 1 Then 'si première feuille on copie aussi les titres (première ligne)
Range(Cells(1, 1), Cells(i, j)).Select
Else
Range(Cells(2, 1), Cells(i, j)).Select 'sinon on copie qu'à partir de la ligne 2
End If
Selection.Copy
Sheets("Nomenclature finale").Select
Cells(k, 1).Select 'on sélectionne la première ligne vide
ActiveSheet.Paste 'on colle les données de la feuille actuelle
If l = 1 Then
k = k + i 'k = première ligne vide
Else
k = k + i - 1
---
Un grand merci par avance,
Mezou