Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1232 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Boucle, générateur de boucles

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Boucle, générateur de boucles

n°1962220
loulou56
Posté le 02-02-2010 à 11:21:18  profilanswer
 

Bonjour à tous,
 
J'ai posé un poste sur un problème de boucle, le problème a changé, donc mes soucis aussi. Je reviens vers vous pour demander votre aide.
 
Voici ma macro,
 

Code :
  1. Sub Macro2()
  2. '
  3. ' Macro2 Macro
  4. '
  5. ' Touche de raccourci du clavier: Ctrl+w
  6. '
  7.     Range("B24:B167" ).Select
  8.     Selection.Copy
  9.     Sheets("Feuil1" ).Select
  10.     Range("C6" ).Select
  11.     Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
  12.         False, Transpose:=True
  13. End Sub


 
Ce que je voudrais faire maintenant, c'est créeé une boucle pour faire la même chose, sachant qu'une même sélection contient 144 données.
 
 
Merci de votre aide

mood
Publicité
Posté le 02-02-2010 à 11:21:18  profilanswer
 

n°1962277
loulou56
Posté le 02-02-2010 à 13:59:16  profilanswer
 

ce qui pourrais m'aider:
 
comment selectionne ton une plage dynamique dans  excel avec VBA?
 
Merci

n°1962365
olivthill
Posté le 02-02-2010 à 16:07:43  profilanswer
 

Pour sélectionner une plage dynamique, utiliser End(xlDown) ou End(xlRight). Par exemple :
 Set rRange = Range([A1], [A1].End(xlDown))

n°1962555
loulou56
Posté le 03-02-2010 à 11:35:08  profilanswer
 

olivthill a écrit :

Pour sélectionner une plage dynamique, utiliser End(xlDown) ou End(xlRight). Par exemple :
 Set rRange = Range([A1], [A1].End(xlDown))


 
Merci, j'ai essayé, mais maintenant j'ai un soucis avec la fonction copier et coller puis transposer, je comprends pas pourquoi, j'ai un message d'erreur, une idée?
Et il ne fait pas la boucle, est-elle mal programmée?
 

Code :
  1. Sub Macro2()
  2. '
  3. ' Macro2 Macro
  4. '
  5. ' Touche de raccourci du clavier: Ctrl+w
  6. '
  7. Dim i, j, x, y As Integer
  8. Dim vRange As Range
  9. x = 3
  10. y = 3
  11. i = 167
  12. j = 24
  13. While (i <> 186000)
  14.     Set vRange = Range(Cells(i, 2), Cells(j, 2))
  15.     ' Range(Cells(maligne, 5), Cells(maligne, macol))
  16.     vRange.Select
  17.     Selection.Copy
  18.     Sheets("Feuil1" ).Select
  19.     'Sheets(Feuil1).Cells(x, y)
  20.     Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
  21.         False, Transpose:=True
  22.     i = i + 144
  23.     j = j + 144
  24.     y = y + 1
  25. Wend
  26. End Sub


 
Merci de votre aide

n°1962642
Laoo
Posté le 03-02-2010 à 15:00:30  profilanswer
 


Bonjour
Je pense que ton pb est là:
 
i = 167
j = 24
tu sélectionnes ta zone de bas en haut, et XL, il aime pas! Il faut faire une sélection de haut en bas, et de gauche à droite.

n°1962686
loulou56
Posté le 03-02-2010 à 16:46:56  profilanswer
 

C'est mieux, mais il ne veut pas faire la boucle, est-elle mauvaise?

n°1962752
Laoo
Posté le 03-02-2010 à 20:40:28  profilanswer
 

rectifie ça:
 'Sheets(Feuil1).Cells(x, y)
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
 
comme ça:
 Sheets("Feuil1" ).Cells(x, y).Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
 
 
 
Sinon ta sélection reste sur vRange.  
 
Et il vaut mieux écrire:
   While (i <= 186000)
 
car sinon, la boucle ne s'arrête QUE si différent de, mais pas si "supérieur à"


Message édité par Laoo le 03-02-2010 à 20:56:34
n°1962836
loulou56
Posté le 04-02-2010 à 10:12:58  profilanswer
 

Merci, le soucis c'est qu'il ne veut pas copier les 144 chiffres suivants, il ne cesse de copier la premiere selection!
 
Argh!
 
Merci

n°1962924
loulou56
Posté le 04-02-2010 à 14:02:14  profilanswer
 

Jje coirs comprendre d'où vient mon erreur,  
il garde la premiere selection de Vrange, mlgré que les indices aient changé. Il y at-il moyen de réinitialisé Vrange à chaque fois,
 
Ou autre solution?
 
Merci


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Boucle, générateur de boucles

 

Sujets relatifs
VBA Fin de la fonction je reviens dans ma boucle ???Problème de Boucle
une question sur une boucle dans se prog[Résolu] boucle for ne retient que la dernière ligne du fichier
Générateur de moteur de recherchejgraph et boucles éditables
Performance des boucles for avec la STLBoucle for et pointeur
[VBA] Boucle sur variablesCouper une boucle avec des includes
Plus de sujets relatifs à : Boucle, générateur de boucles


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR