Problème pour mon 1er VBA

  • Initiateur de la discussion Initiateur de la discussion Jérémie
  • 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 !

J

Jérémie

Guest
Voici mon premier essai avec VBA réalisé grâce aux 7 leçons de JMG. Merci JMG !

Sub Imprimenomenclature()
If Range('O2').Value = VRAI Then
Msg = ' Il y a une incohérence entre les options choisies ! '
Style = vbCritical
Title = ' Attention ! '
Réponse = MsgBox(Msg, Style, Title, Help, Context)
Else
Range('O2').Value = FAUX
Sheets('Nomenclature').Select
Selection.AutoFilter Field:=1, Criteria1:='<>'
ActiveWindow.SelectedSheets.PrintPreview
Sheets('Formulaire').Select
End If
End Sub
--------------------------------------------------------
Private Sub CommandButton2_Click()
Imprimenomenclature
End Sub
--------------------------------------------------------

Ca marche mais le problème c'est qu'après avoir exécuté les lignes

Sheets('Nomenclature').Select
Selection.AutoFilter Field:=1, Criteria1:='<>'
ActiveWindow.SelectedSheets.PrintPreview
Sheets('Formulaire').Select

ça me supprime la formule contenue en O2 qui me donne le résultat VRAI ou FAUX.
Comment puis-je faire pour garder cette formule en O2 ?
Merci d'avance.
 
Merci bertrand

En fait le critère ='<>' je pense que c'est différent de vide. Je l'ai récupéré sur une macro que j'ai faite avec l'outils enregistrer une macro.
Par contre je n'ai pas trouvé ton fichier test.zip en pièce jointe. oubli ?
 
Je débute complétement sur le sujet, je ne maîtrise pas super le language en plus...
Mais j'ai retravaillé une macro hier avec un ami.... Et avec logique on a tenté de contourner...

et pour le principe différent de vide, on a contourné le problème en mettant
If Not .....=''

Ex : If Not Range () = '' then
Et cela a marché.....

Est ce que cela peut aider ?
A confirmer si c'est vraiment cela .. en tout cas sur le principe c bon LOOOL

Bon courage à toi.
 
Bonjour

Il y a un petit truc que je ne comprends pas

tu dis que tu as une formule en O2 qui te mets VRAI ou FAUX

mais dans ton code tu mets

Else
Range('O2').Value = FAUX

donc cela veut dire que lorsque tu n'as pas VRAI dans ta cellule tu retires la formule pour mettre FAUX en dur

Donc je pense que cette ligne là (Range('O2').Value = FAUX) ne sert strictement à rien si de toute façon tu ne peux avoir que VRAI ou FAUX dans ta cellule O2 par ta formule

Bon courage
 
Merci pour ton aide IEIAZEL

Comme toi je suis débutant...
En fait ça marche mon truc Criteria1:='<>'
Mon problème c'est qu'après avoir exécuté ce petit programme ça m'efface le contenu de la cellule O2 (formule qui me donne le résultat VRAI ou FAUX)

Encore merci et bon apprentissage avec VBA
 
Merci Pascal76, je comprend mieux maintenant pourquoi ça me supprimé ma formule. Du coup, as-tu une solution facile pour afficher un message d'erreur dans une boite de message lorsque le résultat de ma formule en O2 est 'FAUX' et que lorsqu'il est 'VRAI' ça exécute les lignes :

Sheets('Etiquettes').Select
Selection.AutoFilter Field:=1, Criteria1:='<>'
ActiveWindow.SelectedSheets.PrintPreview
Sheets('Formulaire').Select

???
Merci pour ton aide précieuse !
 
RE

si c'est faux tu as le message que tu avais donné dans ton premier post
si c'est vrai tu le code de ton dernier post

Sub Imprimenomenclature()
If Range('O2').Value = 'FAUX' Then
Msg = ' Il y a une incohérence entre les options choisies ! '
Style = vbCritical
Title = ' Attention ! '
Réponse = MsgBox(Msg, Style, Title, Help, Context)
Else
Sheets('Etiquettes').Select
Selection.AutoFilter Field:=1, Criteria1:='<>'
ActiveWindow.SelectedSheets.PrintPreview
Sheets('Formulaire').Select
End If
End Sub
 
Yahooouuuuu !!! ça marche !! Merci Pascal !

J'ai juste changé
If Range('O2').Value = 'FAUX' Then
en
If Range('O2').Value = FAUX Then

et ça marche nickel ! C'est trop bien...
Si j'ai bien compris 'Else' signifie 'si non'. C'est ça hein ?

T'en qu'on y est voici une autre question :
Imaginons qu'en A1:A20 j'ai 20 prix différents du genre 12.30€ ect... et que je veuille appliquer une hausse de 5% à tous ces prix en une seule opération. Comment je fais-je ?
Encore merci pour ton coup de pouce.
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
442
G
Réponses
7
Affichages
1 K
gfgghbhg
G
B
  • Question Question
Réponses
3
Affichages
1 K
M
Réponses
1
Affichages
2 K
M
Réponses
8
Affichages
2 K
Michelrib
M
L
Réponses
2
Affichages
3 K
LandryK7
L
  • Question Question
Microsoft 365 Protect/Unprotect
Réponses
18
Affichages
3 K
M
Réponses
12
Affichages
2 K
Retour