Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
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.
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.
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
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...
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.
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
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD