Saleté de boucle !

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 ...
 

ROGER2327

XLDnaute Barbatruc
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:

Si...

XLDnaute Barbatruc
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() !
 

ROGER2327

XLDnaute Barbatruc
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
 

Statistiques des forums

Discussions
312 565
Messages
2 089 729
Membres
104 266
dernier inscrit
christian Auletta