Comment faire pour boucler sur le code name des feuilles?

Paritec

XLDnaute Barbatruc
Comment faire pour boucler sur le codename des feuilles d'un classeur ?

Bonsoir à tous
j'ai un soucis de syntaxe pour faire ce que je veux
j'ai une boucle a faire en utilisant une variable pour incrémenter un code name
pour des question de facilité car la macro restera après mais les feuilles seront renommée et il faut que la macro fonctionne tout de même après.
voilà ce que j'ai en sachant que Feuil & a c'est le CodeName que je souhaite changer et non le Name.
Code:
for a = 2 to 10
cel.Rows.Copy "Feuil" & a .Range("D65000").End(xlUp).Offset(1, 0)
next a
c'est ce que je voudrais faire mais cette syntaxe n'est pas bonne!!!
et je tourne en rond alors au secours
dans l'attente de vos réponses
a+
papou :)
 
Dernière édition:

kjin

XLDnaute Barbatruc
Re : Comment faire pour boucler sur le code name des feuilles?

Bonsoir papou :),
Essaie peut-être comme ceci
Code:
Dim ws As Worksheet
'...
For a = 2 To 10
    Set ws = Sheets(Sheets(a).CodeName)
    cel.Rows.Copy ws.Range("D65000").End(xlUp).Offset(1, 0)
Next a
'...
A+
kjin
 

Paritec

XLDnaute Barbatruc
Comment faire pour boucler sur le code name des feuilles d'un classeur?

Bonsoir Kjin le forum
cela ne marche pas, systématiquement quand je lance j'ai une erreur l'indice n'appartient pas à la sélection et ws. en pas à pas me donne nothing donc il faut autre choses mais quoi!!!!! ????
a+
papou:)
 
Dernière édition:

Papou-net

XLDnaute Barbatruc
Re : Comment faire pour boucler sur le code name des feuilles?

Bonsoir Paritec, kjin, le forum,

Papou, tu peux utiliser l'index des feuilles, mais attention : il faut protéger le classeur, car si tu déplaces les onglets, ça ne fonctionnera plus.

Pour ma part, je fais référence aux noms des feuilles situés sur la gauche (avant les parenthèses) dans l'explorateur de projets. Ces noms, attribués par Excel, ne changent pas même si on modifie leur nom dans les onglets.

Il suffit de les appeler ainsi, par exemple :

Code:
Feuil1.Range("...")=""
(Feuil1 sans guillemets)

Espérant t'avoir aidé.
 

Paritec

XLDnaute Barbatruc
Re : Comment faire pour boucler sur le code name des feuilles?

Bonjour a tous,
oui papou.net c'est bien en utilisant le codename que je souhaite faire une boucle mais quelle en est la syntaxe ?
pour intégrer ma variable ???
a+
Papou :confused:
Code:
for a = 2 to 10
cel.Rows.Copy "Feuil" & a .Range("D65000").End(xlUp).Offset(1, 0)
next a
 

Pierrot93

XLDnaute Barbatruc
Re : Comment faire pour boucler sur le code name des feuilles?

Bonjour à tous

une solution, mais avec activation de la feuille, enfin si j'ai bien compris ton problème :

Code:
Option Explicit
Sub test()
Dim i As Integer
Application.ScreenUpdating = False
For i = 2 To Worksheets.Count
    ThisWorkbook.VBProject.VBComponents("Feuil" & i).Activate
    ActiveSheet.Range("A1").Value = "zzz"
Next i
Application.ScreenUpdating = True
End Sub

bonne journée
@+
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Comment faire pour boucler sur le code name des feuilles?

Re

A noter, pour que ce code fonction, il faut que la case "faire confiance au projet visual basic" soit cochée. Pour ce faire, barre de menu Excel => outils => macro => sécurité => onglet "éditeurs approuvés"...

@+
 

job75

XLDnaute Barbatruc
Re : Comment faire pour boucler sur le code name des feuilles?

Bonjour Papou, le fil, le forum,

Cette macro détermine le numéro du CodeName de chaque feuille :

Code:
Sub Test()
Dim cel As Range, w As Worksheet, n As Integer
Set cel = Feuil1.[A1:E5] 'par exemple
For Each w In Worksheets
  n = Replace(w.CodeName, "Feuil", "")
  If n > 1 And n < 11 Then cel.Rows.Copy w.Range("D65000").End(xlUp).Offset(1)
Next
End Sub
A+
 

Discussions similaires