Variable bloc non définie

  • Initiateur de la discussion Initiateur de la discussion Guy55
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

G

Guy55

Guest
Ou est l'erreur svp ???

Option Explicit

Sub Macro1()
Dim i As Integer, cl As Variant, sh As Object
For Each cl In Range("A2", [A65536].End(xlUp))
sh(i).Name = cl.Value: i = i + 1
Next cl
End Sub

Merci
 
Re : Variable bloc non définie

Salut Guy,

D'apres moi, mais je peux me tromper, la valeur de i n'est pas definie avant la recherche.
i doit avoir une valeur de depart. Or la tu lui affecte une valeur apres recherche.
Si par exemple, tu ecris ' i=0' et que tu le place avant 'For Each..'
sa resoudra peut etre ton probleme. (Pas teste bien sur)

Bonne journee

Olivier
 
Re : Variable bloc non définie

Bonjour Guy, Olivier

a priori tu veux renommer tes feuilles, mais "sh" n'est pas initialisée, regarde le code ci dessous, renomme toutes les feuilles du classeur actif, par les valeurs contenues dans la colonne A (à partir de A2), ces valeurs doivent bien évidemment pouvoir être utilisées comme nom de feuille (pas de caractères spéciaux, et ne pas être vides). A adapter à ton projet.

Code:
Sub Macro1()
Dim i As Integer, sh As Worksheet
For Each sh In Worksheets
    sh.Name = Range("A" & i + 2).Value
    i = i + 1
Next sh
End Sub

bonne journée
@+
 
Re : Variable bloc non définie

Salut Guy
Bonjour le fil
Bonjour le Forum

Voila ce qui aurait pu ,aussi marcher.
Code:
Sub Macro1()
Dim i As Integer
Dim cl As Variant
On Error Resume Next
i = 1
For Each cl In Range("A2", [A65536].End(xlUp))
      Sheets(i).Name = cl.Value: i = i + 1
Next cl
On Error GoTo 0
End Sub

Bonne journée
 
Re : Variable bloc non définie

Salut Guy
Bonjour le fil
Bonjour le Forum

Voila ce qui aurait pu ,aussi marcher.
Code:
Sub Macro1()
Dim i As Integer
Dim cl As Variant
On Error Resume Next
i = 1
For Each cl In Range("A2", [A65536].End(xlUp))
      Sheets(i).Name = cl.Value: i = i + 1
Next cl
On Error GoTo 0
End Sub

Bonne journée

Merci a vous trois ( Olivier, Pierrot et Jean-Marie
Ca fonctionne et votre aide est précieuse
Guy
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
449
Réponses
3
Affichages
332
Réponses
5
Affichages
573
Retour