XL 2013 Macro boucle

dilank

XLDnaute Junior
Bonjour,

j'ai un problème avec ma macro. voir en PJ. Attention car elle ne s'arrete pas, j'ai dû oublier quelque chose mais je ne vois pas...

Merci pour votre aide.
 

Pièces jointes

  • TEST MACRO.xlsm
    38.5 KB · Affichages: 37
  • TEST MACRO.xlsm
    38.5 KB · Affichages: 27
Dernière édition:

AntoineM

XLDnaute Junior
Re : Macro boucle

Bonjour dilank, le forum,

En attendant que des personnes plus compétentes que moi te répondent (je suis un novice), voici une question que je me pose en regardant ton code :

VB:
Sub test()
Dim I As Integer
With Feuil2
  For I = 3 To .Range("AD" & Rows.Count).End(xlUp).Row
    If .Range("AE" & I) = "" Then
      .Range("J3") = .Range("AE" & J)
     Sheets("FEUILLE").PrintPreview
    End If
  Next I
End With
End Sub

Tu mets : Range("J3") = .Range("AE" & J)

Mais à quoi correspond "J" ?
Car tu de définit pas la variable et tu ne dis pas à quoi elle correspond.

Bien à toi,

AntoineM
 

dilank

XLDnaute Junior
Re : Macro boucle

je souhaite que la macro imprime chaque feuille (ici 1 à 13) et quand AE ou AD n'a plus de chiffre que cela s'arrete.
Mais bien sûr il n'y a jamais le même nombre de feuille à imprimer. Les colonnes AD ou AE peuvent aller jusqu'à 300 par exemple et donc la macro imprime les 300 feuilles et s'arrête.
 

thebenoit59

XLDnaute Accro
Re : Macro boucle

Tu peux essayer le code suivant :
Code:
Sub impression()
Dim d As Object
Dim c As Variant
Dim a As Range

Set d = CreateObject("scripting.dictionary")
Set a = Range("ae1:ae" & [ae65000].End(xlUp).Row)
    
    For Each c In a
        If c <> "" Then d(c.Value) = c.Offset(, 1).Value
    Next c
    
    For Each c In d.keys
        [b13].Value = d(c)
            ActiveSheet.PrintPreview
    Next c
End Sub
 

dilank

XLDnaute Junior
Re : Macro boucle

hum je ne comprends pas trop ta macro ... je voulais faire par rapport a la liste en J3 du coup en changeant b13 par j3 cela intègre les donnée en AF à la place de AE.. et avec ton code je ne vois pas où je peux décaler...
 

dilank

XLDnaute Junior
Re : Macro boucle

Dim d As Object
Dim c As Variant
Dim a As Range

Set d = CreateObject("scripting.dictionary")
Set a = Range("ae1:ae" & [ae65000].End(xlUp).Row)

For Each c In a
If c <> "" Then d(c.Value) = c.Offset(, 0).Value
Next c

For Each c In d.keys
[j3].Value = d(c)
ActiveSheet.PrintPreview
Next c
End Sub


j'ai mis comme ceci, c'est avec un chiffre 1,2 ,3 etc... donc en J3 que ma feuille change et avec mes formules etc...
c'est bon thebenoit59.
Merci beaucoup de ton aide.
 

thebenoit59

XLDnaute Accro
Re : Macro boucle

Code:
Dim d As Object
Dim c As Variant
Dim a As Range

Set d = CreateObject("scripting.dictionary")
Set a = Range("ae1:ae" & [ae65000].End(xlUp).Row)

For Each c In a
If c <> "" Then d(c.Value) = ""
Next c

For Each c In d.keys
[j3].Value = c
ActiveSheet.PrintPreview
Next c
End Sub

Ca sera plus propre.
 

Discussions similaires

Statistiques des forums

Discussions
312 229
Messages
2 086 423
Membres
103 206
dernier inscrit
diambote