Macro de condition dans excel

Résolu/Fermé
Signaler
Messages postés
17
Date d'inscription
vendredi 26 novembre 2010
Statut
Membre
Dernière intervention
8 septembre 2011
-
Messages postés
17
Date d'inscription
vendredi 26 novembre 2010
Statut
Membre
Dernière intervention
8 septembre 2011
-
Bonjour,

J'ai de nouveau un petit problème.

Je voudrais choisir une d'ouvrir une feuille de calcul ou un autre en fonction du résultat d'une cellule.

Voici l'exemple: Si D8 = ToTo ouvre feuil2
si elle n'égale pas toto ouvre feuil3

Voici ma première ligne de code mais je sais pas comment la terminé.
Application.ScreenUpdating = False

If Range("D8").Value = "Allo" Then
Application.ActivePrinter = "Wasp WPL-305 sur Ne01:"
Sheets("Étiquette Date").PrintOut Copies:=Sheets("Étiquette Date").Range("E2")

If Not "Allo"

Merci de votre aide précieuse.


5 réponses

Messages postés
10197
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
14 janvier 2022
2 275
bonjour

peut etre quelque chose qui ressemble à ça

If Range("D8").Value = "toto" Then
Sheets("Feuil2").Select
Else
Sheets("Feuil3").Select
End If

bonne suite
0
Messages postés
17
Date d'inscription
vendredi 26 novembre 2010
Statut
Membre
Dernière intervention
8 septembre 2011

J'ai essayé la ligne de code, mais j'ai toujours l'erreur Block if sans end if.
Je vais mettre la ligne de code au complet, peut-être pourrais tu voir l'erreur.
Merci pour ta réponse extrêmement rapide.

Private Sub CommandButton2_Click()
'
Application.ScreenUpdating = False

If Range("D8")= "ToTo" Then

Application.ActivePrinter = "Wasp WPL-305 sur Ne01:"
Sheets("Étiquette Date").PrintOut Copies:=Sheets("Étiquette Date").Range("E2")

Else


' Parcourt les Feuilles de la 1ème à la dernière
For sh = 1 To Sheets.Count
With Sheets(sh).Range("d1")
' recherche la valeur située en 'D8' sur la première feuille
Set t = .Find(Sheets("Choix").Range("D8").Value, LookIn:=xlValues)
If Not t Is Nothing Then
' Si la valeur est trouvée, alors
' Active la feuille contenant cette valeur
Sheets(sh).Activate
' Récupère l'adresse de la cellule trouvée et la selectionne
'Nom du Client
.Range("B1").Offset(0, -3).Copy Destination:=Sheets("Étiquette Pièce").Range("B1:E1")
'Numero de la piece
.Range("B3").Offset(0, -3).Copy Destination:=Sheets("Étiquette Pièce").Range("B5:E5")
'Description de la piece
.Range("B5").Offset(0, -3).Copy Destination:=Sheets("Étiquette Pièce").Range("B3:E3")

Sheets("Étiquette Pièce").Select
'

'
Application.ActivePrinter = "Wasp WPL-305 sur Ne01:"
Sheets("Étiquette Pièce").PrintOut Copies:=Sheets("Étiquette Pièce").Range("G6")

Sheets("Choix").Select
Exit Sub

End If

End With

Next
Application.ScreenUpdating = True
End Sub

Merci encore de ton aide.
0
Messages postés
10728
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
19 janvier 2022
1 249
Bonsoir,
Au passage, il manque un [End If] entre [Next] et [Application.ScreenUpdating = True]
0
Messages postés
17
Date d'inscription
vendredi 26 novembre 2010
Statut
Membre
Dernière intervention
8 septembre 2011

Merci j'ai une autre question, si j'aurais plusieur choix de toto

exemple toto - 1
toto - 2

Comment écrirais tu cette ligne pour que tout ce qui commence par toto soit pris en compte sans être oubligé de toutes les nommé?

If Range("D8")= "ToTo" Then

Merci parce que ta dernière réponse a réglé une partit de mon problème.
0
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 590
bonjour

If left( Range("D8"),4) = "ToTo" Then

prend en compte tous les ToTo
0
Messages postés
17
Date d'inscription
vendredi 26 novembre 2010
Statut
Membre
Dernière intervention
8 septembre 2011

Merci bginforme, mais ça ne fonctionne pas.
Peux-etre que l'erreur vient du fait que Toto-1 est incris dans la case d8?
As-tu une idée?
0
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 590
Bonjour,

Tu as le pourquoi dans ta réponse (Toto-1 ) et ccm81 te donnes la parade.

Lorsque l'on a des saisies imprécises faut faire avec mais c'est plus complexe.
0
Messages postés
10197
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
14 janvier 2022
2 275
re

la proposition de bginforme est correcte
est ce que tu as bien respecté la casse (majuscule/minuscule) dans l'écriture de tes toto(s)
pour eviter ces pb de casse tu peux mettre

If left(UCase(Range("D8")),4)= "TOTO" Then

bonne suite
0
Messages postés
17
Date d'inscription
vendredi 26 novembre 2010
Statut
Membre
Dernière intervention
8 septembre 2011

Merci a vous deux.
je n'avais pas remaqué mon erreur de frappe
Votre aide m'a été précieuse.
0