Problème avec mon Loop

Problème avec mon Loop - VB/VBA/VBS - Programmation

Marsh Posté le 22-03-2013 à 15:22:58    

Bonjour à tous,
 
J'ai une boucle qui me permets de dupliquer le titre d'une colonne d'un TCD excel et quand le titre change, le dupliquer change aussi.
Mais une fois que j'arrive à la fin (cellule vide dans D4), la boucle s'arrête ce qui est normal mais la macro ne continue pas la suite.
 
Pouvez vous m'aider SVP
 
  'Copier les noms d'agence'
    Dim Ligne As Integer
    Dim Référence As String
 
    Range("D4" ).Activate
    ActiveCell.End(xlDown).Activate
    Ligne = ActiveCell.Row
 
    Range("A5" ).Activate
    Référence = ActiveCell.Value
    ActiveCell.Offset(1, 0).Activate
 
    Do While ActiveCell.Row <> Ligne
        Do While ActiveCell.Value = 0
            ActiveCell.Value = Référence
            ActiveCell.Offset(1, 0).Activate
            If ActiveCell.Row > Ligne Then
                Exit Sub
                    End If
    Loop
    Référence = ActiveCell.Value
    ActiveCell.Offset(1, 0).Activate
     
    Loop
   
     
        'Mise en place de filtres'
    Range("A4" ).Select
    Selection.AutoFilter
    Columns("A:N" ).EntireColumn.AutoFit

Reply

Marsh Posté le 22-03-2013 à 15:22:58   

Reply

Marsh Posté le 23-03-2013 à 09:17:54    

Le Exit Sub est peut être la raison?


---------------
[Ach] Just dance + cam PS4
Reply

Marsh Posté le 23-03-2013 à 10:14:40    

déjà essayer mais cela ne fonctionne pas non plus   :(

Reply

Marsh Posté le 23-03-2013 à 10:36:13    

 
           http://smileys.sur-la-toile.com/repository/Messages/plus-un2.gif avec boomy29 ‼
 

Reply

Marsh Posté le 23-03-2013 à 11:44:47    

ce que tu peux commencer par faire c'est enlever tes activecell (cf les cours de Marc L ^^)
 
par exemple  
 
 Range("D4" ).Activate
ActiveCell.End(xlDown).Activate
Ligne = ActiveCell.Row
 
tu peux mettre  
Ligne  = Range("D4" ).End(xlDown).Row
 
ensuite pour ton soucis  
commente le exit sub ou remplacer par exit do ( si ça existe) voir si ça te convient mieux, si tu passes par la suite de ton code

Reply

Marsh Posté le 23-03-2013 à 13:40:19    

Oui, remplacer le exit sub par exit do


---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons
Reply

Marsh Posté le 23-03-2013 à 18:58:24    

exit do, pas pensé je test et je vous tiens au courant. Merci les gars

Reply

Marsh Posté le 24-03-2013 à 12:14:01    

ni exit sub ni exit do fonctionne pour faire la suite   :(

Reply

Marsh Posté le 24-03-2013 à 14:43:38    

En fait, je ne vois pas trop où tu veux en arriver...
As tu essayé d'exécuter ton code en pas à pas (touche F8) en analysant pourquoi ça ne va pas comme tu veux ?


---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons
Reply

Marsh Posté le 25-03-2013 à 09:17:04    

F8 fait, mais rien d'anormal

Reply

Marsh Posté le 25-03-2013 à 09:17:04   

Reply

Marsh Posté le 25-03-2013 à 10:49:50    

C'est quoi que tu appelles "rien d'anormal" ?
 
En pas à pas, ça sort bien de la boucle et continue la macro ?


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
Reply

Marsh Posté le 25-03-2013 à 11:56:23    

je me suis mal exprimé effectivement, qd il arrive à la fin de la liste, il sort bien du premier loop, mais il ne part pas sur le reste de la macro (ce qui se trouve derrière le deuxième Loop). et j'ai pas d'erreur

Reply

Marsh Posté le 25-03-2013 à 13:01:56    

 
           Cela marche bien chez tout le monde sauf toi, donc soit ton classeur est endommagé
           (dans ce cas repart de zéro dans un nouveau classeur), soit …  
           On aimerait voir ton code avec les lignes numérotées, y a l'icône pour le code C à cet effet comme préconisé dans les règles du forum !
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed