créer une boucle pour simplifier ce code

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 !

pascal21

XLDnaute Barbatruc
Code:
If Sheets("programme").Range("a1") <> "" And Sheets("programme").Range("a2") = "" Then
Sheets("programme").Range("a1:k2").Copy Sheets("journal").Range("C65536").End(xlUp)(2)

Else

If Sheets("programme").Range("a2") <> "" And Sheets("programme").Range("a3") = "" Then
Sheets("programme").Range("a1:k3").Copy Sheets("journal").Range("C65536").End(xlUp)(2)

Else
If Sheets("programme").Range("a3") <> "" And Sheets("programme").Range("a4") = "" Then
Sheets("programme").Range("a1:k4").Copy Sheets("journal").Range("C65536").End(xlUp)(2)

Else

.../...
If Sheets("programme").Range("a33") <> "" And Sheets("programme").Range("a34") = "" Then
Sheets("programme").Range("a1:k34").Copy Sheets("journal").Range("C65536").End(xlUp)(2)
Else
bonsoir à tous
j'ai dans un classeur qui fonctionne bien comme il est mais maintenant que l'utilisation en devient fréquente, j'aimerais rendre le code un peu plus fluide disons plus académique
comme je suis nul avec les boucles en tout les cas pour cet exemple là je viens vous demander de l'aide
je vous ai mis les 3 premières lignes pour visualiser le principe
ainsi que la dernière pour la dernière ligne concernée
si çà ne suffit pas à la compréhension du truc ( ce dont je ne me rends pas compte)je mettrais un ptit bout de classeur joint
merci de votre aide
 
Re : créer une boucle pour simplifier ce code

Bonjour Pascal,

Quelque chose comme ça :
Code:
Option Explicit

Sub Boucle()
Dim i As Integer

With Sheets("programme")
    For i = 1 To 33 ' 33 à adapter
        If .Range("A" & i) <> "" And .Range("A" & i + 1) = "" Then
        .Range("A" & i & ":K" & i + 1).Copy Sheets("journal").Range("C65536").End(xlUp)(2)
    End If
End With
End Sub

Non testé.
 
Dernière édition:
Re : créer une boucle pour simplifier ce code

Bonsoir Pascal21 😉

Essaye ce code
Code:
Sub Test()
  Dim Lig As Long
  For Lig = 1 To 33
    If Sheets("programme").Range("A" & Lig) <> "" And Sheets("programme").Range("A" & Lig + 1) = "" Then
      Sheets("programme").Range("A" & Lig & ":K" & Lig + 1).Copy Sheets("journal").Range("C" & Rows.Count).End(xlUp).Offset(2, 0)
    End If
  Next Lig
End Sub
A+

Edit : oups salut jmps, identique à ton code mais moins optimisé
 
- 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
15
Affichages
786
Réponses
4
Affichages
735
Retour