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

Sélection toute la colonne suivante

Malone

XLDnaute Nouveau
Bonjour,

Le but est le suivant :

Si la cellule visé est différente de "0" alors on sélectionne la colonne de cette cellule, on tris les cellules non vide et imprime la sélection
puis on rétablis le filtre
on recommance jusqu'au mot "FIN"

Ci après le code:

Code:
Sub Impression_tracabilité()



'macro pour imprimer les étiquettes de tracabilité
'Application.ScreenUpdating = False

Dim C As Integer
Dim L As Integer
Dim FIN As Integer

Sheets("fp1").Select

C = 6
L = 3


Do While Cells(L, C) <> "FIN"
    If Cells(L, C) <> "0" Then
    'filtrer sur les cellules non vide
    Selection.AutoFilter Field:=6, Criteria1:="<>"
[COLOR="Red"]    Selection.Columns (C)[/COLOR]
    Selection.PrintOut Copies:=1, Collate:=True
    'rétablir le filtre
    Selection.AutoFilter Field:=6
    
    'Colonne suivante
    C = C + 1
    End If
Loop

Application.ScreenUpdating = True

End Sub


J'aimerai changer de sélection de colonne lorsque la formule boucle.

Ex : Columns (C+1)

Je ne sais pas si ma fonction IF est bien placé

Merci de votre aide
 

skoobi

XLDnaute Barbatruc
Re : Sélection toute la colonne suivante

Bonjour,

tu n'es pas obligé de sélectionner la colonne pour l'imprimer. D'ailleurs, Selection correspond à la cellule (ou colonne active) et le fait de "boucler" sur la colonne suivante ne va pas la rendre active pour autant...
Test ceci:

Code:
Do While Cells(L, C) <> "FIN"
    If Cells(L, C) <> "0" Then
    'filtrer sur les cellules non vide
    Columns(C).AutoFilter Field:=6, Criteria1:="<>"
    Columns(C).PrintOut Copies:=1, Collate:=True
    'rétablir le filtre
    Columns(C).AutoFilter Field:=6
    
    'Colonne suivante
    C = C + 1
    End If
Loop
 

Malone

XLDnaute Nouveau
Re : Sélection toute la colonne suivante

Merci Skoobi ça fonctionne un peu mieu, j'ai ajouté "C" après field car il triait tjr sur la même colonne.
Par contre quand il tombre sur un "0" ça boucle à l'infini. Moi je voudrai qu'il saute cette colonne et passe à la suivante et qu'une fois arrivé à FIN la macro s'arrête.

Je joins un pti bou de fichier c'est tjr mieux

Code:
Do While Cells(L, C) <> "FIN"
    If Cells(L, C) <> "0" Then
    'filtrer sur les cellules non vide
    Columns(C).AutoFilter Field:=C, Criteria1:="<>"
    Columns(C).PrintOut Copies:=1, Collate:=True
    'rétablir le filtre
    Columns(C).AutoFilter Field:=C
    
    'Colonne suivante
    C = C + 1
    End If
Loop

End Sub
 

Pièces jointes

  • Macro impression.xls
    30.5 KB · Affichages: 41

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…