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

VBA : Impression souci code IF

  • Initiateur de la discussion Initiateur de la discussion Kiseki
  • Date de début Date de début

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 !

Kiseki

XLDnaute Occasionnel
Bonjour,


C'est sans doute tout bête mais je ne comprend pas pourquoi il me dit "Else sans If".

Code:
Sub P_print()
    Dim zprint As Range
    If Range("E50") <> "" Then zprint = "Print!$A$5:$G$61"
    ElseIf Range("E35") <> "" Then zprint = "Print!$A$5:$G$46"
    ElseIf Range("E20") <> "" Then zprint = "Print!$A$5:$G$31"
    ElseIf Range("E5") <> "" Then zprint = "Print!$A$5:$G$16"
    Else
        MsgBox ("Aucune donnée à imprimer")
        End Sub
    End If
    Sheets("Print").Range("zprint").PrintOut
End Sub
 
Re : VBA : Impression souci code IF

Bonjour Vous commencez sur la première syntaxe où il n'attend plus ni ElseIf ni Else ni End If et considère que la suite n'a rien a voir et commence par EsleIf alors qu'il n'y a pas de If (syntaxe 1) auparavant.

Et d'ailleurs il ne doit pas y avoir non plus d'instruction sur la même ligne derrière Then dans un ElseIf.

Une insruction directement après un Then empêche VBA de considérer le If comme la première instruction d'un bloc devant se terminer par un End If.

Cordialement
 
Dernière édition:
Re : VBA : Impression souci code IF

Bonjour kiseki
Ton end sub est place dans la condition if else endif donc erreur
Taper if. Then...pas besoin de endif
Taper
If....then
Suite
Else
Suite
Endif obligatoire

A+
 
Re : VBA : Impression souci code IF

Bonjour Kiseki,

Si tu mets l'action à réaliser directement derrière le Then, tu n'as pas besoin d'un End If
Si tu veux pouvoir en mettre un il faut aller à la ligne
D'autre part tu dois remplacer ton End sub dans le Else par un Exit Sub

Code:
    If Range("E50") <> "" Then
        zprint = "Print!$A$5:$G$61"
    ElseIf Range("E35") <> "" Then
        zprint = "Print!$A$5:$G$46"
    ElseIf Range("E20") <> "" Then
        zprint = "Print!$A$5:$G$31"
    ElseIf Range("E5") <> "" Then
        zprint = "Print!$A$5:$G$16"
    Else
        MsgBox ("Aucune donnée à imprimer")
        Exit Sub
    End If

edit : Bing, bonjour néné
 
- 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

Discussions similaires

Réponses
4
Affichages
756
Réponses
4
Affichages
523
Réponses
2
Affichages
411
Réponses
5
Affichages
916
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…