Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1621 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA]Excel - Box de confirmation

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA]Excel - Box de confirmation

n°1256003
Nico-Rep
Posté le 30-11-2005 à 14:24:39  profilanswer
 

Bonjour à tous :hello:  
 
Etant encore un grand novice du code VBA sous Excel, j'ai quelques soucis pour avoir ce que je veux :)
 
Dans le cas présent, je souhaiterais qu'une boîte de dialogue s'affiche, demandant la confirmation d'enregistrement dans une autre feuille d'un certain nombre de données, avec les bouton "OK" et "Annuler".
 
Edit: il faudrait qu'une 2nde boite de dialogue apparaisse, demandant si on veut continuer l'enregistrement même si tous les champs à copier ne sont pas remplis.
 
De même, je souhaiterais qu'une autre boîte de dialogue s'affiche, m'indiquant cette fois-ci la confirmation d'enregistrement.
 
J'avais pensé à utiliser la commande While, mais je ne sais pas du tout comment introduire l'ensemble... Help plz! :jap:

Message cité 1 fois
Message édité par Nico-Rep le 30-11-2005 à 14:31:47

---------------
Topic de vente HW - Ancien feed
mood
Publicité
Posté le 30-11-2005 à 14:24:39  profilanswer
 

n°1256133
watashi
La démotivation : JAMAIS !
Posté le 30-11-2005 à 16:34:30  profilanswer
 

Bonjour Nico rep,
 

Nico-Rep a écrit :

Dans le cas présent, je souhaiterais qu'une boîte de dialogue s'affiche, demandant la confirmation d'enregistrement dans une autre feuille d'un certain nombre de données, avec les bouton "OK" et "Annuler".


Pour ça tu as :

Code :
  1. Sub test()
  2. Dim i
  3. i = MsgBox("voulez vous faire ci ou ça ? ", vbOKCancel)
  4. 'Ok renvois i=1, Cancel renvois i = 2, fermeture à la croix renvois i = 2
  5. End Sub

Ensuite tu fais un test sur la valeur de réponse
 

Nico-Rep a écrit :

Edit: il faudrait qu'une 2nde boite de dialogue apparaisse, demandant si on veut continuer l'enregistrement même si tous les champs à copier ne sont pas remplis.

Ben là il faut que tu testes tes champs puis tu peux utiliser une msgbox en vbyesno pour valider la suite du traitement.
 

Nico-Rep a écrit :

De même, je souhaiterais qu'une autre boîte de dialogue s'affiche, m'indiquant cette fois-ci la confirmation d'enregistrement.

A la fin de ton traitement il te suffit de placer une boite de ce type :

Code :
  1. MsgBox Prompt:="Le traitement c'est bien déroulé! ", Title:="Confirmation"


Dans l'aide tu as toutes les constantes pour tes msgbox =, tu y trouveras tout ce dont tu as besoin.  
 
Voilà pour ce qui concerne tes boîte de dialogue, pour ton traitement, et les test que tu veux faire c'est plus dur de t'aider comme ça...
Regarde plutôt les test avec :  if... Then... Else
 
Pour ce qui est de while, ça sert à faire une boucle de ce type "fais blabla tantque..."  

Citation :

Do [{While | Until} condition]
[statements]
[Exit Do]
[statements]
Loop


ou

Citation :

Do
[statements]
[Exit Do]
[statements]
Loop [{While | Until} condition]

Je n'ai pas bien compris le rapport...
@+


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
n°1256225
Nico-Rep
Posté le 30-11-2005 à 17:55:53  profilanswer
 

Merci beaucoup pour ton aide! :jap:


---------------
Topic de vente HW - Ancien feed
n°1256264
Nico-Rep
Posté le 30-11-2005 à 19:03:43  profilanswer
 

Bon, je suis arrivé à faire la boite de dialogue de confirmation d'enregistrement, mais pas celle avec les tests.
 
Je te serais donc très reconnaissant si tu pouvais une dernière fois m'aider à ébaucher un code viable :)
 
Voilà ce que j'ai fait:
 

Citation :

a = 1
        #If Cells(3, a + 5) = "" Or Cells(3, a + 7) = "" Then
    Dim i
    i = MsgBox("Tous les champs ne sont pas renseignés." & vbLf & "            Enregistrer quand même?", vbOKCancel)
            #If i = 1 Then
        #End If
    Sheets("Liste clients" ).Select
    Rows("6:6" ).Select
    Selection.Insert Shift:=xlDown
    Sheets("Proposition de prêt" ).Select
    Range("K12:K22" ).Select
    Selection.Copy
    Sheets("Liste clients" ).Select
    Range("A6" ).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=True
    Range("A3:K250" ).Select
    Application.CutCopyMode = False
    Selection.Sort Key1:=Range("A4" ), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    Sheets("Proposition de prêt" ).Select
    Range("B4" ).Select
            #Else
            Range("C4" ).Select
            #End If


 
Mais lorsque je veux appliquer, il me dit que j'ai une valeur non-définie, et il sélectionne le 1er Cells. Le code doit être totalement faux, mais le seul langage que j'ai à peu près maitrisé, c'est celui de ma calculatrice graphique, une casio qui avait un langage similaire (If, Goto, For etc...).
 
Donc merci pour ton aide ;)
 
NB: Tu remarqueras aussi l'utilisation à outrance de l'espace pour centrer le texte "Enregistrer quand même?" Existe-t'il une commande pour le centrer?


Message édité par Nico-Rep le 30-11-2005 à 19:31:14

---------------
Topic de vente HW - Ancien feed
n°1256597
watashi
La démotivation : JAMAIS !
Posté le 01-12-2005 à 09:07:56  profilanswer
 

Salut Nico,
Apriori ton code me semble bon.
 
Ton problème viens du a je opense as tu bien un "dim a" ?  
 
En ce qui concerne le centrage des textes dans les msgbox non désolée, je sais pas faire j'ai jamais essayé :)
@+


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA]Excel - Box de confirmation

 

Sujets relatifs
VBA Ajout d'un documentdemande de conseil : Excel ou Visual Sutdio
[Excel] Compter un nombre de 0 contigues, la suite de 0 la plus longue[EXCEL] saisie automatique d'une ville via le CP ?
[VBA EXCEL] RechercheV Multicritère avec boite de dialogueVBA pour mot de passe sous Excel
[Excel] Macro creation graphique en fonction de feuille selectionée[VBA-EXCEL 2003] SaveCopyAs mais sans le code VBA ou macro
Plus de sujets relatifs à : [VBA]Excel - Box de confirmation


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR