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 :

Blocage InputBox type de valeur


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Consultant en gestion de la relation client (GRC)
    Inscrit en
    Mars 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant en gestion de la relation client (GRC)
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2023
    Messages : 2
    Par défaut Blocage InputBox type de valeur
    Bonjour,

    Je souhaite supprimer une ligne d'enregistrement de ma base de donnée à l'aide de la macro suivante qui propose 2 questions à l'utilisateur:
    Question 1: "Souhaitez vous supprimer une ligne"?
    Question 2: "Positionnez votre curseur sur la ligne à supprimer"
    Résultat: suppression de la ligne
    Possibilité de sortir (choix "Non" ou "Annuler")

    Cela marche pour:
    - Sortir sur "Nonn" à la première question
    - Supprimer la ligne : cela ses déroule bien si je ne clique que sur "Oui" aux 2 questions. (C'est déjà ça!)

    Ca plante pour le cas "Annuler"
    Je pense que mon problème vient de la déclaration de variable MyCell qui ne renvoie False (booleén) dans un cas et une adreesse de cellule dans l'autre cas (Range)

    Voici 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
    Sub SupprimerEnregistrement()
     
    Dim MyCell As Range
     
        choix1 = MsgBox("Voulez-vous supprimer un enregistrement ?", 36, "Confirmation")
     
        If choix1 = vbNo Then
        MsgBox "C'est enregistré!"
        Else
          Set MyCell = Application.InputBox( _
          prompt:="Positionnez votre curseur sur la ligne à supprimer", Type:=8)
          If MyCell = False Then
          MsgBox "OK!"
          Else
          MyCell.EntireRow.Select
          Selection.Delete Shift:=xlUp
          End If
     
        End If
     
    End Sub

    Quelqu'un saurait-il m'aider?...


    Merci beaucoup !

  2. #2
    Membre émérite
    Homme Profil pro
    Responsable des études(en disponibilité)
    Inscrit en
    Juin 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des études(en disponibilité)
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 367
    Par défaut
    peut être avec la gestion d'erreur

    mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     On Error GoTo saisieannulee
    et

    avant le end sub


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub SupprimerEnregistrement()
    Dim MyCell As Range
    choix1 = MsgBox("Voulez-vous supprimer un enregistrement ?", 36, "Confirmation")
    If choix1 = vbNo Then
    MsgBox "C'est enregistré!"
    Else
    On Error GoTo saisieannulee
    Set MyCell = Application.InputBox( _
    prompt:="Positionnez votre curseur sur la ligne à supprimer", Type:=8)
    MyCell.EntireRow.Select
    Selection.Delete Shift:=xlUp
    End If
    saisieannulee:
    End Sub

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    Consultant en gestion de la relation client (GRC)
    Inscrit en
    Mars 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant en gestion de la relation client (GRC)
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2023
    Messages : 2
    Par défaut Tks !!
    Merci beaucoup a_diard, cela fonctionne très bien. J'ai visiblement des progrès à faire.

  4. #4
    Membre Expert Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 580
    Par défaut
    Bonsoir,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub SupprimerEnregistrement()
    If MsgBox("Voulez-vous supprimer un enregistrement ?", vbYesNo, "Confirmation") = vbNo Then
        MsgBox "C'est enregistré!"
    Else
        On Error Resume Next
        Application.InputBox( _
        prompt:="Positionnez votre curseur sur la ligne à supprimer", Type:=8).EntireRow.Delete Shift:=xlUp
        Err.Clear
        On Error GoTo 0
    End If
    End Sub

Discussions similaires

  1. Problème de type de valeur
    Par bobic dans le forum Langage
    Réponses: 4
    Dernier message: 16/08/2006, 09h53
  2. Test sur le type de valeur
    Par mevardy dans le forum Langage SQL
    Réponses: 4
    Dernier message: 07/08/2006, 13h43
  3. Type de valeur renvoyé ??
    Par Golork dans le forum Access
    Réponses: 1
    Dernier message: 27/06/2006, 17h59
  4. tests sur le type de valeurs
    Par dor_boucle dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 16/03/2006, 14h10
  5. [Base de Registre] Nouveaux type de valeur !?
    Par Lung dans le forum Langage
    Réponses: 4
    Dernier message: 07/04/2004, 10h22

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