Renommer une feuille à partir d'une cellule

Aucune réponse
Avatar
D D
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.

10 réponses

1 2
Avatar
News.aioe.org
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
Avatar
D D
J'ai oublié de dire que je sais pas comment mettre la boite !
Avatar
isabelle
bonjour DD,
un tuto pour mettre la boite (ou autre) ;-)
http://www.cjoint.com/c/GIvdSzlNUSi
isabelle
Le 2017-09-20 à 14:34, D D a écrit :
J'ai oublié de dire que je sais pas comment mettre la boite !
Avatar
isabelle
j'ai ajouté au tuto "Ajouter l'onglet Développeur au menu"
http://www.cjoint.com/c/GIverTMgdXi
isabelle
Le 2017-09-20 à 23:46, isabelle a écrit :
bonjour DD,
un tuto pour mettre la boite (ou autre) ;-)
http://www.cjoint.com/c/GIvdSzlNUSi
isabelle
Le 2017-09-20 à 14:34, D D a écrit :
J'ai oublié de dire que je sais pas comment mettre la boite !
Avatar
sacaordures
Merci Isabelle ! D'un bon conseil ;-)
Avatar
D D
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.
Avatar
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.
Avatar
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.
Avatar
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
Avatar
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 ;-)
1 2