OVH Cloud OVH Cloud

If then

1 réponse
Avatar
Claude HERRMANN
Bonjour,

Un âme charitable pour m'éviter encore une nuit blanche sur cette sacée
fonction.

J'ai effectué une liste à cocher. Elle ne fonctionne que sur la première
impression cochée maiss n'enchaîne pas.
Si je ne coche pas (I45) la première, elle passe bien à ,la deuxième mais
s'arrête
Merçi d'avance
Claude

Voici l'objet du délit:


Sub Imprimer_Tout()
'
' Imprimer_Tout Macro
' Macro enregistrée le 29/06/2004 par HERRMANN
If Sheets("Impressions").Range("I45").Value = 1 Then
Sheets("Page de garde").Select
Sheets("Page de garde").Name = "Page de garde"
Range("A1").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets("Impressions").Select
Range("A1").Select
ElseIf Sheets("Impressions").Range("I46").Value = 1 Then
Sheets("Caractéristiques").Select
Sheets("Caractéristiques").Name = "Caractéristiques"
Range("A1").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets("Impressions").Select
Range("A1").Select
ElseIf Sheets("Impressions").Range("I47").Value = 1 Then
Sheets("Tableau").Select
Sheets("Tableau").Name = "Tableau"
Range("A1").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets("Impressions").Select
Range("A1").Select
ElseIf Sheets("Impressions").Range("I48").Value = 1 Then
Sheets("C=f(D)").Select
Sheets("C=f(D)").Name = "C=f(D)"
Range("A1").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets("Impressions").Select
Range("A1").Select
ElseIf Sheets("Impressions").Range("I49").Value = 1 Then
Sheets("C=f(N)").Select
Sheets("C=f(N)").Name = "C=f(N)"
Range("A1").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets("Impressions").Select
Range("A1").Select
ElseIf Sheets("Impressions").Range("I50").Value = 1 Then
Sheets("N=f(D)").Select
Sheets("N=f(D)").Name = "N=f(D)"
Range("A1").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets("Impressions").Select
Range("A1").Select
ElseIf Sheets("Impressions").Range("I51").Value = 1 Then
Sheets("Selection Moteurs").Select
Sheets("Selection Moteurs").Name = "Selection Moteurs"
Range("A1").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets("Impressions").Select
Range("A1").Select
End If
End Sub

1 réponse

Avatar
Christophe CAUCHOIS
Salut Claude,

Question de logique :
If (condition=vrai)
effectuer le traitement
...pis c'est fini !
ElseIf (autre condition=vrai)
effectuer le traitement
...pis rendez-vous au "End If"
ElseIf...
End if

Dans ton cas, il faut enchainer les If...End If :
If (Sheets("Impressions").Range("I45").Value = 1) Then
effectuer le traitement
End If
If (Sheets("Impressions").Range("I46").Value = 1) Then
effectuer le traitement
End If
etc...
Evidemment tu peux boucler (tu DOIS boucler ;o)) avec un "For Each" de la
zone range("I45:I51") ce qui réduira nettement le nombre de lignes.

HTH

Christophe

"Claude HERRMANN" a écrit dans le message de
news:40e281a3$0$317$
Bonjour,

Un âme charitable pour m'éviter encore une nuit blanche sur cette sacée
fonction.

J'ai effectué une liste à cocher. Elle ne fonctionne que sur la première
impression cochée maiss n'enchaîne pas.
Si je ne coche pas (I45) la première, elle passe bien à ,la deuxième mais
s'arrête
Merçi d'avance
Claude

Voici l'objet du délit:


Sub Imprimer_Tout()
'
' Imprimer_Tout Macro
' Macro enregistrée le 29/06/2004 par HERRMANN
If Sheets("Impressions").Range("I45").Value = 1 Then
Sheets("Page de garde").Select
Sheets("Page de garde").Name = "Page de garde"
Range("A1").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets("Impressions").Select
Range("A1").Select
ElseIf Sheets("Impressions").Range("I46").Value = 1 Then
Sheets("Caractéristiques").Select
Sheets("Caractéristiques").Name = "Caractéristiques"
Range("A1").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets("Impressions").Select
Range("A1").Select
ElseIf Sheets("Impressions").Range("I47").Value = 1 Then
Sheets("Tableau").Select
Sheets("Tableau").Name = "Tableau"
Range("A1").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets("Impressions").Select
Range("A1").Select
ElseIf Sheets("Impressions").Range("I48").Value = 1 Then
Sheets("C=f(D)").Select
Sheets("C=f(D)").Name = "C=f(D)"
Range("A1").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets("Impressions").Select
Range("A1").Select
ElseIf Sheets("Impressions").Range("I49").Value = 1 Then
Sheets("C=f(N)").Select
Sheets("C=f(N)").Name = "C=f(N)"
Range("A1").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets("Impressions").Select
Range("A1").Select
ElseIf Sheets("Impressions").Range("I50").Value = 1 Then
Sheets("N=f(D)").Select
Sheets("N=f(D)").Name = "N=f(D)"
Range("A1").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets("Impressions").Select
Range("A1").Select
ElseIf Sheets("Impressions").Range("I51").Value = 1 Then
Sheets("Selection Moteurs").Select
Sheets("Selection Moteurs").Name = "Selection Moteurs"
Range("A1").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets("Impressions").Select
Range("A1").Select
End If
End Sub