J'ai un problème de gestion de boucle et d'analyse de chaine de caractéres pour mettre à jour la liste de nom des onglets commençant par 20 à partir de la cellule [D3] jusqu'au n onglet à lister.
ci joint le code dans l'état :
PHP:
Sub Maj_Liste_onglets()
[D2].Select
For n = 1 To Sheets.Count
For i = 1 To Sheets.Count
If "20" <> Left(Sheets(i).Name, 2) Then GoTo 1
Selection.Offset(n, 0).Value = Sheets(i).Name
Next i
1 Next n
End Sub
- Je ne parviens pas à "lire" correctement le début de l'onglet (en numérique ou alphanumérique)
- Ca plante lorsque la feuille en cours dans la boucle est inéxistante
- comment différencier l'incrémentation de n permettant d'aller à la ligne suivante lorsque le nom de feuille commence par 20
- et de i lorsque l'onglet est trouvé ?
Autre problème l'exécution de la macro est trés longue (45 s pour actuellement 17 onglets dont 14 onglets commencant par 20) ???
En vous remerciant vivement par avance de vos réponses et différentes observations
Re : liste des onglets commençant par la chaine de caractére "20"
Hello,
Sans avoir testé, essaie :
Code:
Sub test()
Dim n as byte, i as Byte
i=1
For n = 1 to sheets.count
if left$(Sheets(n).name,2)="20" then Range("D2").offset(i, 0) = Sheets(n).Name
Next n
End SUb
Je pense pas que ça doit prendre longtemps pour si peu d'onglets. Vois ce que ça donne.
Re : liste des onglets commençant par la chaine de caractére "20"
Merci pour ce premier élément de réponse
A partir de ton code et en rajoutant un on erreur pour "bypasser " l'absence d'onglet lors de l'incrémentation, on obtiens bien un déroulement des différents onglets mais pas un décalage de ligne aprés chaque onglet commencant par "20"
je pense qu'on y est presque mais là personnellement je cale.
J'ai joint une partie du fichier xls pour illustrer mes interrogations.
Re : liste des onglets commençant par la chaine de caractére "20"
Re, ha oui grosière erreur de ma part, essaie plutôt ainsi :
Code:
Sub test()
Dim n as byte, i as Byte
i=1
For n = 1 to sheets.count
if left$(Sheets(n).name,2)="20" then Range("D2").offset(i, 0) = Sheets(n).Name: i=i+1
Next n
End SUb
Re : liste des onglets commençant par la chaine de caractére "20"
Super ça tourne (c'est tellement simple avec vous).
On y est presque.
Etant donnée que les onglets commençant par "20", ne sont qu'au nombre 14 sur un total de 17. Actuellement je pense qu'il s'arrete dans la liste avant le derniezr fichier à cause de cela.
La parade (si cela est possible) est de lancer une boucle sur le nombre d'onglet commençant par "20".
Re : liste des onglets commençant par la chaine de caractére "20"
re,
j'ai beau chercher, je vois pas... A mon sens, les solutions proposées en #4 et #7 font la même chose : afficher à partir de la cellule D3 la liste des onglets qui commencent par "20", et c'est bien ce que j'avais compris de ta demande initiale. Donc si ton test ne t'affiche que 14 onglets sur 17, c'est pque les 3 autres onglets commencent par autre chose que "20". Ou alors, tente d'être plus clair, pqu'on semble tous un peu patauger à juste COMPRENDRE quel est ton pb
Re : liste des onglets commençant par la chaine de caractére "20"
Mi acculpa,
L'onglet manquant ne figurait pas dans la liste des onglets commencant par "20" car un espace figurait en début de chaine. (du coup " 2" et non pas "20" ...) °(
Maintenant tout fonctionne.
Un grand merci à tous et particulièrement à toi Softmama.