• Initiateur de la discussion Initiateur de la discussion Temjeh
  • Date de début Date de début

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 !

Temjeh

XLDnaute Accro
Bonjour à tous

Aujourd'hui montreal 27 ...soleil

J'aimerais juste savoir comment écrire cette boucle de la vrai facon:

Pour décaler de 20 ligne à partir de ma variable j'utilise ceci qui fonctionne bien:

...
Range('A' & i + 20 & ':' & 'H' & i + 39).Select
Selection.Insert Shift:=xlDown

il doit y avoir une autre facon pour le faire que de sélectionné 20 ligne et Selection.Insert Shift:=xlDown.


Aussi sans abusé j'utilise un goto dans cette loupe qui fonctionne bien:

For i = 1 To 600 Step 40
...si condition 1 remplie goto fin
...si condition 2 remplie
bla bla
...si condition 3 remplie
bla bla
fin:
Next

Comment lui dire de ne pas faire ce step (condition 2, 3)et de relooper aulieu de goto si condition 1 est remplie.

Merci beaucoup je veut juste apprendre a faire de la bonne facon

Temjeh
 
bonjour temjeh


pour ta premiere question, une proposition, a part le select en moins, je ne suis pas sur que ce soit plus propre :

Range(Cells(i + 20, 1), Cells(i + 39, 8)).Insert Shift:=xlDown

pour ta deuxieme question, essaye d'inverser tes conditions :

For i = 1 To 600 Step 40
...si condition 1 non remplie then
...si condition 2 remplie
bla bla
...si condition 3 remplie
bla bla
End If

Next


salut
 
Bonjour,

si j'ai bien compris(...)

1/
tu pourrais écrire
cells(i+20,i+39°.Insert Shift:=xlDown

vérifie dans l'aide si tu peux supprimmer xldown (valeur par défaut?)
dans tes codes écris en VBA tu peux supprimer le select-selection: gain de rapidité

2:

si condition1 then goto fin

à remplacer goto fin par Exit for(de mémoire) qui te fait sortir de la boucle et continue la macro

Goto ne doit être employé que pour la gestion des erreurs (et encore !) sinon tu passeras pour un 'programmeur spaghetti'...

A+
Michel

PS: France, Sud-ardèche 24 25° soleil mais encore mistral à glacer les os.
 
Oui merci Hervé pour ces infos:

For i = 1 To 600 Step 40
If Range('D' & i).Text (différent) '' Then
If Range('D' & i).Text = Range('D' & i + 20).Text And Range('D' & i).Text = Range('D' & i + 40).Text And Range('B' & i + 20) Mod 2 (différent) Range('B' & i + 40) Mod 2 Then
GoTo fin
End If
End If
If Range('D' & i).Text (différent) '' Then
If Range('D' & i).Text = Range('D' & i + 20).Text And Range('D' & i).Text = Range('D' & i + 40).Text And Range('B' & i) Mod 2 (différent) Range('B' & i + 40) Mod 2 Then
Range('A' & i + 20 & ':' & 'H' & i + 39).Select
Selection.Insert Shift:=xlDown
End If
End If
fin:
Next

Si tu peut me guider

Merci


Oui michel c'est justement les réprimendes de Hervé qui me pousse a apprendre!! merci pour tes infos je regarde.

Temjeh

Message édité par: temjeh, à: 06/06/2006 13:37
 
Bonjour Temjeh, Michelet Herve

pour ta 2ème question tu peux aussi utiliser des 'Elseif' dans ton if

par exple

if condition1 then
blabla
elseif condition2 then blabla
elseif condition3 then blabla
end if

l'evaluation s'arrete dès qu une condition à la valeur vrai

si ca peut t aider

Bonne journée à tous
 
- 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

L
Réponses
9
Affichages
1 K
S
  • Question Question
Réponses
2
Affichages
826
S
Réponses
1
Affichages
1 K
S
Réponses
1
Affichages
938
N
Réponses
5
Affichages
3 K
Nicocotte125
N
K
Réponses
2
Affichages
2 K
Compte Supprimé 979
C
Réponses
6
Affichages
2 K
Retour