Macro de condition dans excel

Résolu
JBtheDarkman Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   -  
JBtheDarkman Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   -
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.


A voir également:

5 réponses

ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
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
JBtheDarkman Messages postés 17 Date d'inscription   Statut Membre Dernière intervention  
 
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
Le Pingou Messages postés 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
Bonsoir,
Au passage, il manque un [End If] entre [Next] et [Application.ScreenUpdating = True]
0
JBtheDarkman Messages postés 17 Date d'inscription   Statut Membre Dernière intervention  
 
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
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
bonjour

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

prend en compte tous les ToTo
0
JBtheDarkman Messages postés 17 Date d'inscription   Statut Membre Dernière intervention  
 
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
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
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
JBtheDarkman Messages postés 17 Date d'inscription   Statut Membre Dernière intervention  
 
Merci a vous deux.
je n'avais pas remaqué mon erreur de frappe
Votre aide m'a été précieuse.
0