Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

consolidation d'onglets

4 réponses
Avatar
Orsu
Bonjour à tous
Je cherche à consolider des données figurant dans différents onglets.
J'ai bien vu les solutions proposées par JB et notamment celle-ci (version 4
figurant sur son site) :

Sub consolide_ongletsNomOnglet()
Sheets("base").[A1].CurrentRegion.Offset(1, 0).Clear
For s = 2 To Sheets.Count
nlig = Sheets(s).[A65000].End(xlUp).Row - 1
ncol = Sheets(s).[A1].CurrentRegion.Columns.Count
[A65000].End(xlUp).Offset(1, ncol).Resize(nlig, 1).Value =
Sheets(s).Name
[A65000].End(xlUp).Offset(1, 0).Resize(nlig, ncol).Value = _
Sheets(s).[A2].Resize(nlig, ncol).Value
Next s
On Error Resume Next
[A:A].SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

.......qui me satisfait presque totalement sauf que je voudrais conserver
l'en tête de ligne et que l'ajout du nom de l'onglet se fasse dans la
première colonne et pas dans la dernière (en clair il faut insérer une
nouvelle colonne).

Merci si quelqu'un peut m'aider car mes compétences en VBA frisent le néant

@+ et merci d'avance

4 réponses

Avatar
FFO
Salut à toi

pour obtenir l'entête remplace la ligne :

[A65000].End(xlUp).Offset(1, 0).Resize(nlig, ncol).Value = _
Sheets(s).[A2].Resize(nlig, ncol).Value

par

[A65000].End(xlUp).Offset(1, 0).Resize(nlig, ncol).Value = _
Sheets(s).[A1].Resize(nlig, ncol).Value

pour la recopie du nom de l'onglet dans la colonne rajoutée :
ou dans cette colonne le souhaites tu ???

Merci pour la précision



Bonjour à tous
Je cherche à consolider des données figurant dans différents onglets.
J'ai bien vu les solutions proposées par JB et notamment celle-ci (version 4
figurant sur son site) :

Sub consolide_ongletsNomOnglet()
Sheets("base").[A1].CurrentRegion.Offset(1, 0).Clear
For s = 2 To Sheets.Count
nlig = Sheets(s).[A65000].End(xlUp).Row - 1
ncol = Sheets(s).[A1].CurrentRegion.Columns.Count
[A65000].End(xlUp).Offset(1, ncol).Resize(nlig, 1).Value =
Sheets(s).Name
[A65000].End(xlUp).Offset(1, 0).Resize(nlig, ncol).Value = _
Sheets(s).[A2].Resize(nlig, ncol).Value
Next s
On Error Resume Next
[A:A].SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

.......qui me satisfait presque totalement sauf que je voudrais conserver
l'en tête de ligne et que l'ajout du nom de l'onglet se fasse dans la
première colonne et pas dans la dernière (en clair il faut insérer une
nouvelle colonne).

Merci si quelqu'un peut m'aider car mes compétences en VBA frisent le néant

@+ et merci d'avance


Avatar
Orsu
Merci pour l'en-tête

Pour le nom de l'onglet, je voudrais qu'il apparaisse dans la feuille de
consolidation sur chacune des lignes "importées" des différents
tableaux-source (en clair, le but est d'identifier le tableau-source pour
ensuite faire un TCD)

Merci et @+



Salut à toi

pour obtenir l'entête remplace la ligne :

[A65000].End(xlUp).Offset(1, 0).Resize(nlig, ncol).Value = _
Sheets(s).[A2].Resize(nlig, ncol).Value

par

[A65000].End(xlUp).Offset(1, 0).Resize(nlig, ncol).Value = _
Sheets(s).[A1].Resize(nlig, ncol).Value

pour la recopie du nom de l'onglet dans la colonne rajoutée :
ou dans cette colonne le souhaites tu ???

Merci pour la précision



Bonjour à tous
Je cherche à consolider des données figurant dans différents onglets.
J'ai bien vu les solutions proposées par JB et notamment celle-ci (version 4
figurant sur son site) :

Sub consolide_ongletsNomOnglet()
Sheets("base").[A1].CurrentRegion.Offset(1, 0).Clear
For s = 2 To Sheets.Count
nlig = Sheets(s).[A65000].End(xlUp).Row - 1
ncol = Sheets(s).[A1].CurrentRegion.Columns.Count
[A65000].End(xlUp).Offset(1, ncol).Resize(nlig, 1).Value =
Sheets(s).Name
[A65000].End(xlUp).Offset(1, 0).Resize(nlig, ncol).Value = _
Sheets(s).[A2].Resize(nlig, ncol).Value
Next s
On Error Resume Next
[A:A].SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

.......qui me satisfait presque totalement sauf que je voudrais conserver
l'en tête de ligne et que l'ajout du nom de l'onglet se fasse dans la
première colonne et pas dans la dernière (en clair il faut insérer une
nouvelle colonne).

Merci si quelqu'un peut m'aider car mes compétences en VBA frisent le néant

@+ et merci d'avance




Avatar
FFO
Rebonjours à toi

Essaie ce code :

Sub consolide_ongletsNomOnglet()
Sheets("base").[A1].CurrentRegion.Offset(1, 0).Clear
For s = 2 To Sheets.Count
nlig = Sheets(s).[A65000].End(xlUp).Row - 1
ncol = Sheets(s).[A1].CurrentRegion.Columns.Count
[A65000].End(xlUp).Offset(1, 1).Resize(nlig, ncol).Value = _
Sheets(s).[A1].Resize(nlig, ncol).Value
[A65000].End(xlUp).Offset(1, 0).Resize(nlig, 1).Value =
Sheets(s).Name
Next s
On Error Resume Next
[A:A].SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

Et dis moi !!!!


Merci pour l'en-tête

Pour le nom de l'onglet, je voudrais qu'il apparaisse dans la feuille de
consolidation sur chacune des lignes "importées" des différents
tableaux-source (en clair, le but est d'identifier le tableau-source pour
ensuite faire un TCD)

Merci et @+



Salut à toi

pour obtenir l'entête remplace la ligne :

[A65000].End(xlUp).Offset(1, 0).Resize(nlig, ncol).Value = _
Sheets(s).[A2].Resize(nlig, ncol).Value

par

[A65000].End(xlUp).Offset(1, 0).Resize(nlig, ncol).Value = _
Sheets(s).[A1].Resize(nlig, ncol).Value

pour la recopie du nom de l'onglet dans la colonne rajoutée :
ou dans cette colonne le souhaites tu ???

Merci pour la précision



Bonjour à tous
Je cherche à consolider des données figurant dans différents onglets.
J'ai bien vu les solutions proposées par JB et notamment celle-ci (version 4
figurant sur son site) :

Sub consolide_ongletsNomOnglet()
Sheets("base").[A1].CurrentRegion.Offset(1, 0).Clear
For s = 2 To Sheets.Count
nlig = Sheets(s).[A65000].End(xlUp).Row - 1
ncol = Sheets(s).[A1].CurrentRegion.Columns.Count
[A65000].End(xlUp).Offset(1, ncol).Resize(nlig, 1).Value =
Sheets(s).Name
[A65000].End(xlUp).Offset(1, 0).Resize(nlig, ncol).Value = _
Sheets(s).[A2].Resize(nlig, ncol).Value
Next s
On Error Resume Next
[A:A].SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

.......qui me satisfait presque totalement sauf que je voudrais conserver
l'en tête de ligne et que l'ajout du nom de l'onglet se fasse dans la
première colonne et pas dans la dernière (en clair il faut insérer une
nouvelle colonne).

Merci si quelqu'un peut m'aider car mes compétences en VBA frisent le néant

@+ et merci d'avance






Avatar
Orsu
Trop fort !!!!!

ca marche impec !

Merci encore ;-)))


Rebonjours à toi

Essaie ce code :

Sub consolide_ongletsNomOnglet()
Sheets("base").[A1].CurrentRegion.Offset(1, 0).Clear
For s = 2 To Sheets.Count
nlig = Sheets(s).[A65000].End(xlUp).Row - 1
ncol = Sheets(s).[A1].CurrentRegion.Columns.Count
[A65000].End(xlUp).Offset(1, 1).Resize(nlig, ncol).Value = _
Sheets(s).[A1].Resize(nlig, ncol).Value
[A65000].End(xlUp).Offset(1, 0).Resize(nlig, 1).Value =
Sheets(s).Name
Next s
On Error Resume Next
[A:A].SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

Et dis moi !!!!


Merci pour l'en-tête

Pour le nom de l'onglet, je voudrais qu'il apparaisse dans la feuille de
consolidation sur chacune des lignes "importées" des différents
tableaux-source (en clair, le but est d'identifier le tableau-source pour
ensuite faire un TCD)

Merci et @+



Salut à toi

pour obtenir l'entête remplace la ligne :

[A65000].End(xlUp).Offset(1, 0).Resize(nlig, ncol).Value = _
Sheets(s).[A2].Resize(nlig, ncol).Value

par

[A65000].End(xlUp).Offset(1, 0).Resize(nlig, ncol).Value = _
Sheets(s).[A1].Resize(nlig, ncol).Value

pour la recopie du nom de l'onglet dans la colonne rajoutée :
ou dans cette colonne le souhaites tu ???

Merci pour la précision



Bonjour à tous
Je cherche à consolider des données figurant dans différents onglets.
J'ai bien vu les solutions proposées par JB et notamment celle-ci (version 4
figurant sur son site) :

Sub consolide_ongletsNomOnglet()
Sheets("base").[A1].CurrentRegion.Offset(1, 0).Clear
For s = 2 To Sheets.Count
nlig = Sheets(s).[A65000].End(xlUp).Row - 1
ncol = Sheets(s).[A1].CurrentRegion.Columns.Count
[A65000].End(xlUp).Offset(1, ncol).Resize(nlig, 1).Value =
Sheets(s).Name
[A65000].End(xlUp).Offset(1, 0).Resize(nlig, ncol).Value = _
Sheets(s).[A2].Resize(nlig, ncol).Value
Next s
On Error Resume Next
[A:A].SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

.......qui me satisfait presque totalement sauf que je voudrais conserver
l'en tête de ligne et que l'ajout du nom de l'onglet se fasse dans la
première colonne et pas dans la dernière (en clair il faut insérer une
nouvelle colonne).

Merci si quelqu'un peut m'aider car mes compétences en VBA frisent le néant

@+ et merci d'avance