Microsoft 365 impression selon conditions

annesophan

XLDnaute Nouveau
Bonjour,
je suis actuellement en train d'essayer de créer un fichier excell avec une macro qui permettrait entre autre d'imprimer en fonction des résultats obtenus 3 Comptes Rendus différents.
Les 3 Comptes rendus se remplissent par la macro.
Ensuite avec la macro si 2 valeurs se trouvent dans le compte rendu1 en B28(résultats CD34) et B30(Résultats CD3) par exemple la macro imprime le compte rendu avec les 2 valeurs.
sinon c'est un autre compte rendu qui s'imprime où je n'ai par exemple que les résultats CD34 et enfin un autre compte rendu si c'est l'autre valeur( résultats en CD3).
J'espère être assez claire.
Voila ce que j'ai fait pour cette impression .

Sheets("résultat CD34-CD3").Select
Range("B28").Select
If ActiveCell.Value <> "0" Then
Range("B30").Select
If ActiveCell.Value <> "0" Then
ActiveWindow.SelectedSheets.PrintPreview
Else
Sheets("résultat CD34").Select
Range("B28").Select
If ActiveCell.Value <> "0" Then
ActiveWindow.SelectedSheets.PrintPreview
Else
Sheets("résultat CD3").Select
Range("B28").Select
If ActiveCell.Value <> "0" Then
ActiveWindow.SelectedSheets.PrintPreview

End If
End If
End If
End If


Or ça fonctionne pas pour tous les CR sauf pour celui des CD3.
J'ai même essaye d'enlever la condition pour les CD3 puisque c'est la derniere condition ça ne fonctionne pas non plus !!
J'ai esayer aussi de le mettre avant le CD34.
ça fonctionne toujours pour le CD34 mais toujours pas pour le CD3 !!
Bref une bonne prise de tête .
Surtout qu ej'y connais rien j'ai tout appris sur le tas .
J'espère que je suis assez claire mais surtout que vous allez pouvoir m'aider.
Bonne fin de journée à tous.
 
Solution
Bonjour @annesophan

Pas sur d'avoir tout compris ....

VB:
Sub Imprime()
With Sheets("résultat CD34-CD3")
    If .Range("B28").Value <> "0" And .Range("B30").Value <> "0" Then
        .PrintPreview
    Else
        If Sheets("résultat CD34").Range("B28").Value <> "0" Then
            Sheets("résultat CD34").PrintPreview
        Else
            If Sheets("résultat CD3").Range("B28").Value <> "0" Then Sheets("résultat CD3").PrintPreview
        End If
    End If
End With
End Sub

Remarques :

1)En général les select et les activate sont à éviter
2)Avec un fichier c'est plus clair .....

*Merci de ton retour

@Phil69970

Phil69970

XLDnaute Barbatruc
Bonjour @annesophan

Pas sur d'avoir tout compris ....

VB:
Sub Imprime()
With Sheets("résultat CD34-CD3")
    If .Range("B28").Value <> "0" And .Range("B30").Value <> "0" Then
        .PrintPreview
    Else
        If Sheets("résultat CD34").Range("B28").Value <> "0" Then
            Sheets("résultat CD34").PrintPreview
        Else
            If Sheets("résultat CD3").Range("B28").Value <> "0" Then Sheets("résultat CD3").PrintPreview
        End If
    End If
End With
End Sub

Remarques :

1)En général les select et les activate sont à éviter
2)Avec un fichier c'est plus clair .....

*Merci de ton retour

@Phil69970
 

Discussions similaires

Statistiques des forums

Discussions
312 165
Messages
2 085 880
Membres
103 009
dernier inscrit
dede972