Macro renommant des feuilles qui marche ou pas selon le nom
Aldouss
Messages postés
8
Statut
Membre
-
Aldouss Messages postés 8 Statut Membre -
Aldouss Messages postés 8 Statut Membre -
Bonjour, et merci d'avance pour votre aide !
J'ai un soucis que je n'identifie pas :
Je cherche à faire une fonction SAVFeuille(byval ws as worksheet)
Elle est censée prendre en input une feuille, en faire une parfaite copie nommée SAV + nom initial
Ca marche pour certains noms initiaux, mais pour certains ça donne erreur 1004 :

Voici le code :
Je la teste avec cette sub :
Alors là aussi, si je ne passe par la ligne que j'avais écrite initialement :
Call SAVFeuille(ThisWorkbook.Worksheets(Application.InputBox("Feuille num cb ?", Type:=2, Default:=1))
En gros au lieu de d'abord remplir un "i", puis ensuite demander la feuille "i", là aussi une erreur et je ne comprends pas pourquoi -_-
Erreur d'indice ..
Alors opurquoi est-ce que ma macro initiale me met cette erreur ? Par exemple avec le nom TOUTES MES MACROS EN BOUTON ça ne marche pas,
Le rename manuel en SAV TOUTES MES MACROS EN BOUTON fonctionne très bien pourtant.
Avec d'autres noms, ça marche très bien ...
J'ai un soucis que je n'identifie pas :
Je cherche à faire une fonction SAVFeuille(byval ws as worksheet)
Elle est censée prendre en input une feuille, en faire une parfaite copie nommée SAV + nom initial
Ca marche pour certains noms initiaux, mais pour certains ça donne erreur 1004 :

Voici le code :
Sub SAVFeuille(ByVal ws As Worksheet)
Dim wb As Workbook
Dim wsS As Worksheet 'sauvegarde
Dim wsA As Worksheet 'feuille active
Dim Nom As String 'nom de la feuille dont creer une sauvegarde
Set wb = ThisWorkbook
Set wsA = ActiveSheet
With wb
'recuperation nom
Nom = ws.Name
Nom = "SAV " & Nom
'creation feuille SAV + affectation
.Worksheets.Add(after:=Worksheets(Application.Worksheets.Count)).Name = Nom
Set wsS = .Worksheets(Application.Worksheets.Count)
ws.Cells.Copy Destination:=wsS.Cells(1, 1)
'activation feuille initiale
wsA.Activate
End With
End Sub
Je la teste avec cette sub :
Sub TestSAVFEuille()
Dim i as integer
i = Application.InputBox("Feuille num cb ?", Type:=2, Default:=1)
Call SAVFeuille(ThisWorkbook.Worksheets(i))
End Sub
Alors là aussi, si je ne passe par la ligne que j'avais écrite initialement :
Call SAVFeuille(ThisWorkbook.Worksheets(Application.InputBox("Feuille num cb ?", Type:=2, Default:=1))
En gros au lieu de d'abord remplir un "i", puis ensuite demander la feuille "i", là aussi une erreur et je ne comprends pas pourquoi -_-
Erreur d'indice ..
Alors opurquoi est-ce que ma macro initiale me met cette erreur ? Par exemple avec le nom TOUTES MES MACROS EN BOUTON ça ne marche pas,
Le rename manuel en SAV TOUTES MES MACROS EN BOUTON fonctionne très bien pourtant.
Avec d'autres noms, ça marche très bien ...
A voir également:
- Macro renommant des feuilles qui marche ou pas selon le nom
- Comment faire un livret avec des feuilles a4 - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Renommer des fichiers en masse - Guide
- Bruler des feuilles de laurier - Guide
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
2 réponses
Application.InputBox renvoie une chaine et i= ... assure la conversion en nombre.
Essaies :
Call SAVFeuille(ThisWorkbook.Worksheets(CInt(Application.InputBox("Feuille num cb ?", Type:=2, Default:=1))))
Essaies :
Call SAVFeuille(ThisWorkbook.Worksheets(CInt(Application.InputBox("Feuille num cb ?", Type:=2, Default:=1))))
Quand tu réponds à tes questions :
Monsieur, apprenez à lire -> "Vérifiez que le nombre de caractères ne dépasse pas 31"
=NbCar("SAV TOUTES MES MACROS EN BOUTONS") donne 32
Reste juste le soucis de pourquoi je n'arrive pas à lancer mon test avec l'inputbox,
Pour le coup je ne comprends pas et ne pas comprendre m'embête.
Monsieur, apprenez à lire -> "Vérifiez que le nombre de caractères ne dépasse pas 31"
=NbCar("SAV TOUTES MES MACROS EN BOUTONS") donne 32
Reste juste le soucis de pourquoi je n'arrive pas à lancer mon test avec l'inputbox,
Pour le coup je ne comprends pas et ne pas comprendre m'embête.
Super merci, j'ai la tête pleine de code je n'arrive plus à penser à des choses simples
Je savais que ce n'était pas si compliqué !
MERCI pour ton aide précieuse !