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

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

Papou-net

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

James007

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

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

Jilde

XLDnaute Occasionnel
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 !!!
 

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