Simplifier code via une boucle avec comme variable les numéros de feuilles paires

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 !

micapilote

XLDnaute Junior
Bonjour, voici mon petit code que j'aimerai raccourcir à l'aide d'une boucle mais je n'y parviens pas. (le code originel va de B à L donc en cas de modif ,cela fait bcp
bcp bcp bcp de lignes de code à modifier)

j'aimerai faire une boucle avec comme début la feuille N°2 et ça jusqu'à la 30 en passant de 2 en 2 (Step 2)
donc feuille 2,4,6,8,...,30 ou sinon petite info, toutes les feuilles "paires" ont leur nom se finissant par "(FS)".
Code:
'Ligne 4'
Dim K As Integer
    For K = 4 To 18
Sheets("Récapitulatif").Range("B" & K) = Sheets(2).Range("E2").Value 'Nom du client'
Sheets("Récapitulatif").Range("C" & K) = Sheets(2).Range("B2").Value 'N° de dossier''
Next K
 
'Ligne 5'
Dim K As Integer
    For K = 4 To 18
Sheets("Récapitulatif").Range("B" & K) = Sheets(4).Range("E2").Value 'Nom du client'
Sheets("Récapitulatif").Range("C" & K) = Sheets(4).Range("B2").Value 'N° de dossier''
Next K
 
'et ça jusqu'à la ligne 18'

vous me rendriez un gd service.
Merci
 
Re : Simplifier code via une boucle avec comme variable les numéros de feuilles paire

Bonsoir,

Peut-être avec ce code si j'ai bien interprété ta question:

Code:
Dim K As Integer, i As Integer
For i = 2 To 30 Step 2
    For K = 4 To 18
        Sheets("Récapitulatif").Range("B" & K) = Sheets(i).Range("E2").Value 'Nom du client'
        Sheets("Récapitulatif").Range("C" & K) = Sheets(i).Range("B2").Value 'N° de dossier''
    Next K
Next i

Bonne soirée,

mth

Edit: Bonsoir Grand Chaman 🙂 🙂
 
Dernière édition:
Re : Simplifier code via une boucle avec comme variable les numéros de feuilles paire

Bonjour,

Quelque chose comme ça peut-être :

Code:
For i = 2 To 30 Step 2

    'Ligne 4'
    Dim K As Integer
        For K = 4 To 18
    Sheets("Récapitulatif").Range("B" & K) = Sheets(i).Range("E2").Value 'Nom du client'
    Sheets("Récapitulatif").Range("C" & K) = Sheets(i).Range("B2").Value 'N° de dossier''
    Next K
    
    'etc....

Next i

A+

Edit : un peu trop tard... bonjour mth
 
Re : Simplifier code via une boucle avec comme variable les numéros de feuilles paire

Bonsoir Micapilote,

peut être comme cela :

'Ligne 4'
Dim K As Integer, dim i as integer

' Boucle
For K = 4 to 18
i = i + 2
Sheets("Récapitulatif").Range("B" & K) = Sheets(i).Range("E2").Value 'Nom du client'
Sheets("Récapitulatif").Range("C" & K) = Sheets(i).Range("B2").Value 'N° de dossier''

next k

Laurent
 
Re : Simplifier code via une boucle avec comme variable les numéros de feuilles paire

j'avais bien tenté ça mais cela ne fonctionne pas, les cellules de ma feuille récapitulatif reste vide !
j'étais parti sur bien plus compliqué (peu être, voir surement pour rien)
Code:
Dim ws
For Each ws In Worksheets
If Right(Sheets(ws).Name, 4) = "(FS)" Then
           Sheets(ws).Select
 Dim K As Integer
    For K = 4 To 18
Sheets("Récapitulatif").Range("B" & K) = Sheets(ws).Range("E2").Value 'Nom du client'
Sheets("Récapitulatif").Range("C" & K) = Sheets(ws).Range("B2").Value 'N° de dossier''
*
Next K
       Else
       End If
    Next ws
 
Re : Simplifier code via une boucle avec comme variable les numéros de feuilles paire

Bonsoir Micapilote,

peut être comme cela :

'Ligne 4'
Dim K As Integer, dim i as integer

' Boucle
For K = 4 to 18
i = i + 2
Sheets("Récapitulatif").Range("B" & K) = Sheets(i).Range("E2").Value 'Nom du client'
Sheets("Récapitulatif").Range("C" & K) = Sheets(i).Range("B2").Value 'N° de dossier''

next k

Laurent

Merci bcp à vous (tous), celle de Laurent fonctionne au poil (pas les autres)
PS: j'ai juste retiré le 2ème dim en trop
Dim K As Integer, dim i as integer

Pourquoi faire si compliqué quand c'est si simple ! (je parle de moi bien sur)
 
Re : Simplifier code via une boucle avec comme variable les numéros de feuilles paire

re bonsoir à tous 🙂

Sans fichier pour tester pas facile, mais je ne comprends pas ta boucle, en fait ça revient à écrire ceci:
Code:
Dim K As Integer, i As Integer
For i = 2 To 30 Step 2
        Sheets("Récapitulatif").Range("B4:B18") = Sheets(i).Range("E2").Value 'Nom du client'
        Sheets("Récapitulatif").Range("C4:C18") = Sheets(i).Range("B2").Value 'N° de dossier''
Next i

Tu vas chercher dans tes onglets, mais tu écrases tes données et finalement c'est la dernière valeur qui reste.
Je ne comprends pas trop ce que tu veux obtenir ...😕

@ +

mth
 
Re : Simplifier code via une boucle avec comme variable les numéros de feuilles paire

Pour clarifier ma demande (qui est réalisée)

Code:
Dim K As Integer, i as integer

' k est mon numéro de ligne de ma feuille récapitulatif 
For K = 4 to 18 'ligne 4 remplir toutes les colonnes (ici B et C) avec les valeurs de la feuille 2 (ici E2 et B2)
i = i + 2 'ligne 5, 6 etc... remplir avec les valeurs des feuilles 4,6 etc...
Sheets("Récapitulatif").Range("B" & K) = Sheets(i).Range("E2").Value 'Nom du client'
Sheets("Récapitulatif").Range("C" & K) = Sheets(i).Range("B2").Value 'N° de dossier''

next k
 
- 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

Discussions similaires

Réponses
3
Affichages
828
Réponses
3
Affichages
819
Retour