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

Saleté de boucle !

  • Initiateur de la discussion Initiateur de la discussion Jilde
  • 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 !

Jilde

XLDnaute Occasionnel
Bonjour les gens ;o) !!

Ca va paraitre très simple pour beaucoup, mais j'y arrive pas ...
Je veux juste remplacer le code suivant par une boucle :

Code:
Sub inverse()
Range("g1") = StrReverse(Range("d1"))
Range("g2") = StrReverse(Range("d2"))
...
Range("g100") = StrReverse(Range("d100"))
End Sub

Oui, je sais ... Je sais ... Je mets mon bonnet d'âne et j'vais m'cacher ...
 
Re : Saleté de boucle !

Bonjour Jilde,

Peut-être comme ceci ?

Code:
Sub inverse()
For n = 1 To 100
  Range("g" & n) = StrReverse(Range("d" & n))
Next
End Sub

A présent, tu peux ôter ton bonnet d'âne !

Cordialement.
 
Re : Saleté de boucle !

Bonjour,

Nous sommes tous passés par là ...
Code:
Sub inverse()
Dim i As Integer
For i = 1 to 100
Range("g" & i ) = StrReverse(Range("d" & i))
Next i
End Sub

A +
 
Dernière édition:
Re : Saleté de boucle !

Bonjour à tous
Ou encore :
Code:
[B][COLOR=DarkSlateGray]Sub inverse()
Dim i&, Nb&, Dst$, Org$, Dat[COLOR=Red]()[COLOR=Black] [COLOR=DarkOrange]'Ajout suite à la remarque de Si...[/COLOR][/COLOR][/COLOR][/COLOR][/B][B][COLOR=DarkSlateGray]
  Org = "D1"
  Dst = "G1"
  Nb = 100
  Dat = Range(Org).Resize(Nb, 1).Value
  For i = 1 To Nb
    Dat(i, 1) = StrReverse(Dat(i, 1))
  Next i
  Range(Dst).Resize(Nb, 1).Value = Dat
End Sub[/COLOR][/B]
ROGER2327
#4535


Samedi 14 As 138 (Saint Pierre Bonnard, peintre des Phynances, SQ)
26 Brumaire An CCXIX
2010-W46-2T12:04:34Z
 
Dernière édition:
Re : Saleté de boucle !

salut

autre boucle
Code:
Sub inverse()
  Dim C As Range
  For Each C In Range("D1:D100")
    If C <> "" Then C.Offset(, 3) = StrReverse(C)
  Next 
End Sub
maintenant, si... le nombre de lignes est très important, passer par un tableau comme le fait ROGER2327, s'avère bien plus rapide.
Remarque (avec ma version limitée à 65000 lignes et des brouettes): plus rapide encore avec la déclaration de Dat en Tableau plutôt qu'en Variant, ainsi : Dat() !
 
Re : Saleté de boucle !

Grand merci à tous pour vos réponses !!!

J'ai encore fais un grand pas en avant !!!!

Bon, j'espère juste ne pas être au bord d'un précipice ...

Vive le forum !!!
 
Re : Saleté de boucle !

Re...
(…)
Remarque (avec ma version limitée à 65000 lignes et des brouettes): plus rapide encore avec la déclaration de Dat en Tableau plutôt qu'en Variant, ainsi : Dat() !
Parfaitement exact ! Dans la précipitation, j'ai oublié cette parenthèse, qu'il faut ajouter…
Merci pour votre vigilance.
ROGER2327
#4537


Samedi 14 As 138 (Saint Pierre Bonnard, peintre des Phynances, SQ)
26 Brumaire An CCXIX
2010-W46-2T17:03:38Z
 
- 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
5
Affichages
1 K
W
U
  • Question Question
Réponses
3
Affichages
2 K
uzu1302
U
Réponses
2
Affichages
980
D
Réponses
3
Affichages
941
Doze3
D
O
Réponses
4
Affichages
1 K
Olocsob
O
Réponses
1
Affichages
1 K
I
Réponses
5
Affichages
2 K
I
S
Réponses
0
Affichages
728
S
K
Réponses
0
Affichages
719
K
M
Réponses
2
Affichages
1 K
M
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…