IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Attribution de 2 actions a un seul commandbutton [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 6
    Par défaut Attribution de 2 actions a un seul commandbutton
    Tout d'abord bonjour,
    Je suis nouveau sur le forum et mes notions de vba remontent à loin dans le temps... Mais j'ai de nouveau besoin de cet outil et surtout de votre aide. Je n'ai pas trouvé de discussion sur ce sujet, ma question est peut-être idiote.

    J'ai crée un UserForm avec plusieurs commandbutton "Nouveau contact" "Modifier contact" et "Supprimer contact". Pour l'instant, je sais faire.
    Pour modifier un contact, je souhaite appuyer une 1ère fois sur "Modifier contact". Là, je récupère les infos du contact à modifier dans mon formulaire. Là encore ça fonctionne. Je veux ensuite modifier les infos du contact directement dans mon formulaire... Et là comment valider les infos ??? En rappuyant sur "Modifier contact"!!! oui mais si je fais cela, je repars pour re-sélectionner un contact. Je voudrais donc savoir si je peux attribuer une 2ème action (au second clic) à mon bouton "modifier contact". Est-ce la logique qui ne va pas ? Je demande à Excel de faire qqc impossible ou faut-il tout simplement créer un autre bouton "modifier contact" invisible au début ?

    Merci d'avance pour votre aide.

    Je mets mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    'Pour le bouton Modifier
    Private Sub CommandButton2_Click()
    'L'idée est de REMPLIR LE FORMULAIRE DEPUIS LA BASE DE DONNEES
    Dim ma_cellule As Range
    Dim code As Range
    Dim code_test As String
    Dim Adresse_ma_celule As String
    Dim nb_clic As Integer
     
    Set code = Range("a3:a65000")
     
    'Sélection de la cellule du client auquel on souhaite apporter des modifications
     
    code_test = Application.InputBox("Veuillez inscrire le code du client à modifier.", "Sélection du client à modifier", Type:=2)
     
    Set ma_cellule = code.Cells.Find(What:=code_test, LookAt:=xlWhole, SearchOrder:=xlByRows)
    If ma_cellule Is Nothing Then
        MsgBox "Entrer un code existant SVP"
    Else
     
    ' remplir le formulaire
    TextBox1.Value = ma_cellule
    TextBox2.Value = ma_cellule.Offset(0, 1)
    TextBox3.Value = ma_cellule.Offset(0, 2)
    TextBox4.Value = ma_cellule.Offset(0, 3)
    TextBox5.Value = ma_cellule.Offset(0, 4)
    TextBox6.Value = ma_cellule.Offset(0, 5)
    TextBox7.Value = ma_cellule.Offset(0, 6)
    TextBox8.Value = ma_cellule.Offset(0, 7)
    TextBox9.Value = ma_cellule.Offset(0, 8)
    TextBox10.Value = ma_cellule.Offset(0, 9)
    TextBox11.Value = ma_cellule.Offset(0, 10)
    TextBox12.Value = ma_cellule.Offset(0, 11)
    nb_clic = 1
    'Apporter les modifs
    MsgBox ("Veuillez apporter les modifications nécessaires SVP")
    'exécuter les modifs
     
    If MsgBox("Confirmez-vous les modifications du contact ? ", vbYesNo, " Demande de confirmation") = vbYes Then
    ma_cellule.Value = TextBox1
    ma_cellule.Offset(0, 1).Value = TextBox2
    ma_cellule.Offset(0, 2).Value = TextBox3
    ma_cellule.Offset(0, 3).Value = TextBox4
    ma_cellule.Offset(0, 4).Value = TextBox5
    ma_cellule.Offset(0, 5).Value = TextBox6
    ma_cellule.Offset(0, 6).Value = TextBox7
    ma_cellule.Offset(0, 7).Value = TextBox8
    ma_cellule.Offset(0, 8).Value = TextBox9
    ma_cellule.Offset(0, 9).Value = TextBox10
    ma_cellule.Offset(0, 10).Value = TextBox11
    ma_cellule.Offset(0, 11).Value = TextBox12
    End If
    End If
    End Sub

  2. #2
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour,

    En toute logique, je verrais 3 procédures distinctes

    1) Demande de modification (bouton de commande)
    Sélection du client auquel on souhaite apporter des modifications
    Remplissage automatique du formulaire
    Saisie des modifications
    Dans cette même procédure, tu fais apparaitre deux autres boutons de commande et tu caches le premier.

    2) Demande de Validation du traitement (bouton de commande)
    Contrôles de saisie
    Exécution des modifications

    3) Demande d’Annulation du traitement (bouton de commande)
    Retour à l’état initial
    Abandon de la procédure

    Cordialement.

  3. #3
    Invité
    Invité(e)
    Par défaut
    bonjour regarde le fichier joint!
    Fichiers attachés Fichiers attachés

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 6
    Par défaut
    Merci beaucoup pour vos réponses très rapides et très précises.

    gFZT82,
    Effectivement, je me suis orienté en attendant sur ta solution de moi même mais je rencontre un souci pour l'instant (bien que je ne me sois pas encore vraiment penché dessus) avec la récupération de la variable du bouton modifié. En effet, quand je vais modifier mon contact, je vais peut-être modifier son code et je dois donc garder "en mémoire" la ligne sur laquelle je travaille.

    rdurupt,
    C'est une très belle parade à mon souci.

    Je vais voir ce que j'arrive à faire

    Merci de vos réponses, je reviens vers vous pour vous tenir au courant.

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 6
    Par défaut
    Pour info je suis resté sur ta solution gFZT82, j'étais déjà parti dessus et cela fonctionne très bien ! Merci à vous 2

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 25/05/2008, 17h06
  2. Double action sur un seul bouton (userform)VBA)
    Par willybass dans le forum VBA Access
    Réponses: 5
    Dernier message: 14/05/2008, 15h10
  3. action avec un seul bouton sur plusieurs MC différents
    Par cece2000 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 22/04/2008, 11h33
  4. realiser une action sur une seule colonne
    Par Benwad dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/02/2008, 21h43
  5. Réaliser 2 actions pour un seul submit !
    Par pekka77 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 28/10/2005, 14h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo