Autres Impression simultanée de plusieurs fiches suivant une liste déroulante

mcc1210

XLDnaute Nouveau
Bonjour
Je cherche à imprimer des fiches de suivi de fabrication obtenues grâce à une liste déroulante (N5) sur une feuille d'un fichier excel (feuille FS) :
- Une fiche par pièce, avec un numéro et des dimensions différentes (qui se mettent à jour en cliquant sur la liste déroulante)
- Impression de toutes les fiches en un seul clic.

Pas moyen d'adapter les solutions VBA proposées sur le forum.
Une âme compatissante peut-elle m'aider à programmer une macro.
 

Pièces jointes

  • test.xlsx
    55.5 KB · Affichages: 30

job75

XLDnaute Barbatruc
Bonjour mcc1210, bienvenue sur XLD,

Cette macro permet d'imprimer toutes les fiches (sans doublon) l'une après l'autre :
VB:
Sub Imprimer()
Dim d As Object, cel As Range, mem, c As Range, v
Set d = CreateObject("Scripting.Dictionary")
With Sheets("FS ") 'il y a un espace dans le nom de la feuille !!!
    Set cel = .[N5] 'cellule contenant la liste de validation
    mem = cel 'mémorise la valeur
    For Each c In Evaluate(cel.Validation.Formula1)
        v = c.Value
        If Not d.exists(v) Then
            d(v) = ""
            cel = v
            .PrintPreview 'pour tester
            '.PrintOut 'pour imprimer ôter l'apostrophe
        End If
    Next
    cel = mem 'restitution
End With
End Sub
PS : enlevez l'espace superflu dans le nom de la feuille !

A+
 

mcc1210

XLDnaute Nouveau
Bonjour Job75
La programmation est vraiment puissante….
Dites moi où peut-on apprendre le langage VBA
C'est presque parfait. Comment je peux faire si j'ai un numéro de pièce identique (N5 - liste déroulante) et que mon numéro de fiche change (O1)
Merci beaucoup pour votre réponse
 

job75

XLDnaute Barbatruc
Bonjour mcc1210,
Comment je peux faire si j'ai un numéro de pièce identique (N5 - liste déroulante) et que mon numéro de fiche change (O1)
Pour que O1 change alors que N5 ne change pas il faut mettre une liste de validation en O1.

Voyez le fichier joint, les nouvelles valeurs de la feuille "coteFS" et cette nouvelle macro :
VB:
Sub Imprimer()
Dim d As Object, cel1 As Range, cel2 As Range, mem1, mem2, plage As Range, c1 As Range, v, c2 As Range
Set d = CreateObject("Scripting.Dictionary")
With Sheets("FS") 'j'ai enlevé l'espace superflu...
    Set cel1 = .[N5] 'cellule contenant la 1ère liste de validation
    Set cel2 = .[O1] 'cellule contenant la 2ème liste de validation
    mem1 = cel1 'mémorise la valeur
    mem2 = cel2 'mémorise la valeur
    Set plage = Sheets("coteFS").Columns(2).SpecialCells(xlCellTypeFormulas)
    For Each c1 In plage
        v = c1.Value
        If Not d.exists(v) Then
            d(v) = ""
            cel1 = v
            For Each c2 In plage
                If c2 = v Then
                    cel2 = c2(1, 2)
                    .PrintPreview 'pour tester
                    '.PrintOut 'pour imprimer ôter l'apostrophe
                End If
            Next c2
        End If
    Next c1
    cel1 = mem1 'restitution
    cel2 = mem2 'restitution
End With
End Sub
Pour ce qui est d'apprendre le langage VBA la question a souvent été posée, faites une recherche sur le forum.

A+
 

Pièces jointes

  • test(1).xlsm
    65.2 KB · Affichages: 13

mcc1210

XLDnaute Nouveau
Bonjour Job75
Sortie du confinement, mes opérateurs ont testé. Ils trouvent cette macro formidable car elle va leur faire gagner beaucoup de temps. Merci pour votre aide.
Comme ils sont perfectionnistes, ils me demandent si la macro qui permet d'imprimer directement toutes les fiches peut se faire sans devoir valider chacune des impressions.
Merci pour votre retour
 

mcc1210

XLDnaute Nouveau
Ma question n'était sûrement pas très claire.
Je leur ai mis un bouton poussoir pour "l'aperçu" et "l'impression".
Pour 300 fiches à imprimer, je dois valider chacune à l'impression (pas l'aperçu avant impression)
Du coup, comme mes opérateurs sont très intelligents, ils m'ont demandé de trouver un moyen de valider 1 seule fois.
Merci
 

fanch55

XLDnaute Barbatruc
Vous auriez dit :
Quand je lance l'aperçu, je dois me taper les n fiches avant de pouvoir continuer,
je comprendrai que ce soit ch.. à la longue ..

Par contre, si vous imprimez le tout d'un seul coup, je ne comprend pas ce message de confirmation à moins qu'il y ait un paramètre dans le pilote de l'imprimante qui le force .

Pourriez-vous faire une capture du message ?
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16