Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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


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

re 🙂

nos messages se sont croisés, contente que tu aies ta solution et bravo à Laurent 🙂

Bonne soirée à tous,

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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…