Bonjour, je voudrais pouvoir renommer une feuille =C3=A0 partir d'une cellu=
le contenue dans cette m=C3=AAme feuille, et ce, avec un bouton ?=20
Merci.=20
Didier.
Bonjour, Dans le module de la feuille où tu veux insérer ton bouton et changer le nom de la feuille au contenu d'une cellule de cette feuille : Tu adaptes l'adresse de la cellule C5 pour celle de ton application. '----------------------- Sub ModifierNoM() ActiveSheet.Name = Range("C5") End Sub '----------------------- Attention : Le nom d'une feuille ne peut pas contenir l'un de ces symboles : / ? * : [ ] Par conséquent, le contenu de la cellule ne peut pas contenir l'un de ces symboles. MichD
Bonjour,
Dans le module de la feuille où tu veux insérer ton bouton et changer le nom
de la feuille au contenu d'une cellule de cette feuille :
Tu adaptes l'adresse de la cellule C5 pour celle de ton application.
'-----------------------
Sub ModifierNoM()
ActiveSheet.Name = Range("C5")
End Sub
'-----------------------
Attention : Le nom d'une feuille ne peut pas contenir l'un de ces symboles :
/ ? * : [ ]
Par conséquent, le contenu de la cellule ne peut pas
contenir l'un de ces symboles.
Bonjour, Dans le module de la feuille où tu veux insérer ton bouton et changer le nom de la feuille au contenu d'une cellule de cette feuille : Tu adaptes l'adresse de la cellule C5 pour celle de ton application. '----------------------- Sub ModifierNoM() ActiveSheet.Name = Range("C5") End Sub '----------------------- Attention : Le nom d'une feuille ne peut pas contenir l'un de ces symboles : / ? * : [ ] Par conséquent, le contenu de la cellule ne peut pas contenir l'un de ces symboles. MichD
D D
J'ai oublié de dire que je sais pas comment mettre la boite !
J'ai oublié de dire que je sais pas comment mettre la boite !
Maintenant j'aimerai collecter des données qui sont sur différent es feuilles (pas toutes avec le même nom) et faire une synthèse d e toutes mes données sur une feuille nommée "synthèse" par e xemple.
Maintenant j'aimerai collecter des données qui sont sur différent es feuilles (pas toutes avec le même nom) et faire une synthèse d e toutes mes données sur une feuille nommée "synthèse" par e xemple.
Maintenant j'aimerai collecter des données qui sont sur différent es feuilles (pas toutes avec le même nom) et faire une synthèse d e toutes mes données sur une feuille nommée "synthèse" par e xemple.
News.aioe.org
Bonjour, Copie ceci dans un module de ton classeur : Toutes les données de toutes les feuilles seront compilées dans une nouvelle feuille nommée "Résultat". J'ai supposé que toutes les feuilles avaient en ligne 1, les étiquettes de colonnes. '------------------------------------------------------------------------ Sub Compilation() Dim Sh As Worksheet, Feuille As Worksheet Dim Rg As Range, A As Long Application.ScreenUpdating = False Application.EnableEvents = False On Error Resume Next Application.DisplayAlerts = False Worksheets("Résultat").Delete Application.DisplayAlerts = True Set Feuille = Worksheets.Add Feuille.Name = "Résultat" For Each Sh In ThisWorkbook.Worksheets If Sh.Name <> Feuille.Name Then With Sh 'donne la dernière ligne occupée par une valeur DerLig = .Cells.Find("*", LookIn:=xlValues, _ SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row 'donne la dernière colonne occupée par une valeur DerCol = .Cells.Find("*", LookIn:=xlValues, _ SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column 'Détermine toute la plage de cellule à copier 'la première feuille, inclure la ligne d'étiquette de la plage If A = 0 Then Set Rg = .Range(.Range("A1"), .Cells(DerLig, DerCol).Address) A = A + 1 Else 'pour les autres feuilles, exclure la ligne d'étiquette. Set Rg = .Range(.Range("A2"), .Cells(DerLig, DerCol).Address) End If End With With Feuille If Application.WorksheetFunction.CountA(.Cells) = 0 Then FirstRow = 1 Else FirstRow = .Cells.Find("*", LookIn:=xlValues, _ SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1 End If Rg.Copy .Range("A" & FirstRow) End With End If Next Application.ScreenUpdating = True Application.EnableEvents = True End Sub '------------------------------------------------------------------------ MichD "D D" a écrit dans le message de groupe de discussion : Maintenant j'aimerai collecter des données qui sont sur différentes feuilles (pas toutes avec le même nom) et faire une synthèse de toutes mes données sur une feuille nommée "synthèse" par exemple.
Bonjour,
Copie ceci dans un module de ton classeur :
Toutes les données de toutes les feuilles seront compilées dans une
nouvelle feuille nommée "Résultat". J'ai supposé que toutes les feuilles
avaient en ligne 1, les étiquettes de colonnes.
'------------------------------------------------------------------------
Sub Compilation()
Dim Sh As Worksheet, Feuille As Worksheet
Dim Rg As Range, A As Long
On Error Resume Next
Application.DisplayAlerts = False
Worksheets("Résultat").Delete
Application.DisplayAlerts = True
Set Feuille = Worksheets.Add
Feuille.Name = "Résultat"
For Each Sh In ThisWorkbook.Worksheets
If Sh.Name <> Feuille.Name Then
With Sh
'donne la dernière ligne occupée par une valeur
DerLig = .Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
'donne la dernière colonne occupée par une valeur
DerCol = .Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByColumns,
SearchDirection:=xlPrevious).Column
'Détermine toute la plage de cellule à copier
'la première feuille, inclure la ligne d'étiquette de la plage
If A = 0 Then
Set Rg = .Range(.Range("A1"), .Cells(DerLig,
DerCol).Address)
A = A + 1
Else
'pour les autres feuilles, exclure la ligne d'étiquette.
Set Rg = .Range(.Range("A2"), .Cells(DerLig,
DerCol).Address)
End If
End With
With Feuille
If Application.WorksheetFunction.CountA(.Cells) = 0 Then
FirstRow = 1
Else
FirstRow = .Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1
End If
Rg.Copy .Range("A" & FirstRow)
End With
End If
Next
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
'------------------------------------------------------------------------
MichD
"D D" a écrit dans le message de groupe de discussion :
98c87f39-a7c5-4393-9ce0-df228ed51288@googlegroups.com...
Maintenant j'aimerai collecter des données qui sont sur différentes feuilles
(pas toutes avec le même nom) et faire une synthèse de toutes mes données
sur une feuille nommée "synthèse" par exemple.
Bonjour, Copie ceci dans un module de ton classeur : Toutes les données de toutes les feuilles seront compilées dans une nouvelle feuille nommée "Résultat". J'ai supposé que toutes les feuilles avaient en ligne 1, les étiquettes de colonnes. '------------------------------------------------------------------------ Sub Compilation() Dim Sh As Worksheet, Feuille As Worksheet Dim Rg As Range, A As Long Application.ScreenUpdating = False Application.EnableEvents = False On Error Resume Next Application.DisplayAlerts = False Worksheets("Résultat").Delete Application.DisplayAlerts = True Set Feuille = Worksheets.Add Feuille.Name = "Résultat" For Each Sh In ThisWorkbook.Worksheets If Sh.Name <> Feuille.Name Then With Sh 'donne la dernière ligne occupée par une valeur DerLig = .Cells.Find("*", LookIn:=xlValues, _ SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row 'donne la dernière colonne occupée par une valeur DerCol = .Cells.Find("*", LookIn:=xlValues, _ SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column 'Détermine toute la plage de cellule à copier 'la première feuille, inclure la ligne d'étiquette de la plage If A = 0 Then Set Rg = .Range(.Range("A1"), .Cells(DerLig, DerCol).Address) A = A + 1 Else 'pour les autres feuilles, exclure la ligne d'étiquette. Set Rg = .Range(.Range("A2"), .Cells(DerLig, DerCol).Address) End If End With With Feuille If Application.WorksheetFunction.CountA(.Cells) = 0 Then FirstRow = 1 Else FirstRow = .Cells.Find("*", LookIn:=xlValues, _ SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1 End If Rg.Copy .Range("A" & FirstRow) End With End If Next Application.ScreenUpdating = True Application.EnableEvents = True End Sub '------------------------------------------------------------------------ MichD "D D" a écrit dans le message de groupe de discussion : Maintenant j'aimerai collecter des données qui sont sur différentes feuilles (pas toutes avec le même nom) et faire une synthèse de toutes mes données sur une feuille nommée "synthèse" par exemple.
JièL
Hello MichD question : pourquoi VBA quand la fonctionnalité "Consolider" existe (ruban Données, groupe Outils de données) ? -- JièL toujours AMIS AMIS : Anti Macro Inutilement Superfétatoire ;-) Le 22/09/2017 à 13:22, News.aioe.org a écrit :
Bonjour, Copie ceci dans un module de ton classeur : Toutes les données de toutes les feuilles seront compilées dans une nouvelle feuille nommée "Résultat". J'ai supposé que toutes les feuilles avaient en ligne 1, les étiquettes de colonnes. '------------------------------------------------------------------------ Sub Compilation() Dim Sh As Worksheet, Feuille As Worksheet Dim Rg As Range, A As Long Application.ScreenUpdating = False Application.EnableEvents = False On Error Resume Next Application.DisplayAlerts = False Worksheets("Résultat").Delete Application.DisplayAlerts = True Set Feuille = Worksheets.Add Feuille.Name = "Résultat" For Each Sh In ThisWorkbook.Worksheets If Sh.Name <> Feuille.Name Then With Sh 'donne la dernière ligne occupée par une valeur DerLig = .Cells.Find("*", LookIn:=xlValues, _ SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row 'donne la dernière colonne occupée par une valeur DerCol = .Cells.Find("*", LookIn:=xlValues, _ SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column 'Détermine toute la plage de cellule à copier 'la première feuille, inclure la ligne d'étiquette de la plage If A = 0 Then Set Rg = .Range(.Range("A1"), .Cells(DerLig, DerCol).Address) A = A + 1 Else 'pour les autres feuilles, exclure la ligne d'étiquette. Set Rg = .Range(.Range("A2"), .Cells(DerLig, DerCol).Address) End If End With With Feuille If Application.WorksheetFunction.CountA(.Cells) = 0 Then FirstRow = 1 Else FirstRow = .Cells.Find("*", LookIn:=xlValues, _ SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1 End If Rg.Copy .Range("A" & FirstRow) End With End If Next Application.ScreenUpdating = True Application.EnableEvents = True End Sub '------------------------------------------------------------------------ MichD "D D" a écrit dans le message de groupe de discussion : Maintenant j'aimerai collecter des données qui sont sur différentes feuilles (pas toutes avec le même nom) et faire une synthèse de toutes mes données sur une feuille nommée "synthèse" par exemple.
Hello MichD
question : pourquoi VBA quand la fonctionnalité "Consolider" existe
(ruban Données, groupe Outils de données) ?
--
JièL toujours AMIS
AMIS : Anti Macro Inutilement Superfétatoire ;-)
Le 22/09/2017 à 13:22, News.aioe.org a écrit :
Bonjour,
Copie ceci dans un module de ton classeur :
Toutes les données de toutes les feuilles seront compilées dans une
nouvelle feuille nommée "Résultat". J'ai supposé que toutes les feuilles
avaient en ligne 1, les étiquettes de colonnes.
'------------------------------------------------------------------------
Sub Compilation()
Dim Sh As Worksheet, Feuille As Worksheet
Dim Rg As Range, A As Long
On Error Resume Next
Application.DisplayAlerts = False
Worksheets("Résultat").Delete
Application.DisplayAlerts = True
Set Feuille = Worksheets.Add
Feuille.Name = "Résultat"
For Each Sh In ThisWorkbook.Worksheets
If Sh.Name <> Feuille.Name Then
With Sh
'donne la dernière ligne occupée par une valeur
DerLig = .Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
'donne la dernière colonne occupée par une valeur
DerCol = .Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByColumns,
SearchDirection:=xlPrevious).Column
'Détermine toute la plage de cellule à copier
'la première feuille, inclure la ligne d'étiquette de la plage
If A = 0 Then
Set Rg = .Range(.Range("A1"), .Cells(DerLig,
DerCol).Address)
A = A + 1
Else
'pour les autres feuilles, exclure la ligne d'étiquette.
Set Rg = .Range(.Range("A2"), .Cells(DerLig,
DerCol).Address)
End If
End With
With Feuille
If Application.WorksheetFunction.CountA(.Cells) = 0 Then
FirstRow = 1
Else
FirstRow = .Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1
End If
Rg.Copy .Range("A" & FirstRow)
End With
End If
Next
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
'------------------------------------------------------------------------
MichD
"D D" a écrit dans le message de groupe de discussion :
98c87f39-a7c5-4393-9ce0-df228ed51288@googlegroups.com...
Maintenant j'aimerai collecter des données qui sont sur différentes
feuilles (pas toutes avec le même nom) et faire une synthèse de toutes
mes données sur une feuille nommée "synthèse" par exemple.
Hello MichD question : pourquoi VBA quand la fonctionnalité "Consolider" existe (ruban Données, groupe Outils de données) ? -- JièL toujours AMIS AMIS : Anti Macro Inutilement Superfétatoire ;-) Le 22/09/2017 à 13:22, News.aioe.org a écrit :
Bonjour, Copie ceci dans un module de ton classeur : Toutes les données de toutes les feuilles seront compilées dans une nouvelle feuille nommée "Résultat". J'ai supposé que toutes les feuilles avaient en ligne 1, les étiquettes de colonnes. '------------------------------------------------------------------------ Sub Compilation() Dim Sh As Worksheet, Feuille As Worksheet Dim Rg As Range, A As Long Application.ScreenUpdating = False Application.EnableEvents = False On Error Resume Next Application.DisplayAlerts = False Worksheets("Résultat").Delete Application.DisplayAlerts = True Set Feuille = Worksheets.Add Feuille.Name = "Résultat" For Each Sh In ThisWorkbook.Worksheets If Sh.Name <> Feuille.Name Then With Sh 'donne la dernière ligne occupée par une valeur DerLig = .Cells.Find("*", LookIn:=xlValues, _ SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row 'donne la dernière colonne occupée par une valeur DerCol = .Cells.Find("*", LookIn:=xlValues, _ SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column 'Détermine toute la plage de cellule à copier 'la première feuille, inclure la ligne d'étiquette de la plage If A = 0 Then Set Rg = .Range(.Range("A1"), .Cells(DerLig, DerCol).Address) A = A + 1 Else 'pour les autres feuilles, exclure la ligne d'étiquette. Set Rg = .Range(.Range("A2"), .Cells(DerLig, DerCol).Address) End If End With With Feuille If Application.WorksheetFunction.CountA(.Cells) = 0 Then FirstRow = 1 Else FirstRow = .Cells.Find("*", LookIn:=xlValues, _ SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1 End If Rg.Copy .Range("A" & FirstRow) End With End If Next Application.ScreenUpdating = True Application.EnableEvents = True End Sub '------------------------------------------------------------------------ MichD "D D" a écrit dans le message de groupe de discussion : Maintenant j'aimerai collecter des données qui sont sur différentes feuilles (pas toutes avec le même nom) et faire une synthèse de toutes mes données sur une feuille nommée "synthèse" par exemple.
News.aioe.org
Bonjour, Cela dépend si le but recherché est de regrouper sur une même feuille toutes les entrées des données des feuilles contenues dans un classeur ou effectuer une consolidation. C'est deux choses différentes... Pour plus d'information sur ce qu'est la commande "consolider", il y a ceci : https://support.office.com/fr-fr/article/Consolider-les-données-dans-plusieurs-feuilles-de-calcul-007ce8f4-2fae-4fea-9ee5-a0b2c9e36d9b La macro proposée ne fait que regrouper toutes les données dans une même feuille. Cela pourrait éventuellement être utile pour un tableau croisé dynamique. Le demandeur n'a pas précisé le but recherché dans la manipulation de données. MichD
Bonjour,
Cela dépend si le but recherché est de regrouper sur une même feuille toutes
les entrées des données des feuilles contenues dans un classeur ou effectuer
une consolidation. C'est deux choses différentes...
Pour plus d'information sur ce qu'est la commande "consolider", il y a ceci
:
https://support.office.com/fr-fr/article/Consolider-les-données-dans-plusieurs-feuilles-de-calcul-007ce8f4-2fae-4fea-9ee5-a0b2c9e36d9b
La macro proposée ne fait que regrouper toutes les données dans une même
feuille. Cela pourrait éventuellement être utile pour un tableau croisé
dynamique.
Le demandeur n'a pas précisé le but recherché dans la manipulation de
données.
Bonjour, Cela dépend si le but recherché est de regrouper sur une même feuille toutes les entrées des données des feuilles contenues dans un classeur ou effectuer une consolidation. C'est deux choses différentes... Pour plus d'information sur ce qu'est la commande "consolider", il y a ceci : https://support.office.com/fr-fr/article/Consolider-les-données-dans-plusieurs-feuilles-de-calcul-007ce8f4-2fae-4fea-9ee5-a0b2c9e36d9b La macro proposée ne fait que regrouper toutes les données dans une même feuille. Cela pourrait éventuellement être utile pour un tableau croisé dynamique. Le demandeur n'a pas précisé le but recherché dans la manipulation de données. MichD
isabelle
ok...! ça m'a pris du temps... j'ai pigé le speudo... %-( à moi Le 2017-09-21 à 13:33, a écrit :
Merci Isabelle ! D'un bon conseil ;-)
ok...! ça m'a pris du temps... j'ai pigé le speudo... %-( à moi
Le 2017-09-21 à 13:33, sacaordures@gmail.com a écrit :