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 :

demander à l'uitilisateur de sélectionner une cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    764
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2008
    Messages : 764
    Par défaut demander à l'uitilisateur de sélectionner une cellule
    Bonjour,

    Après avoir cliqué sur un CommandButton, je souhaite que l'utilisateur puisse sélectionner une cellule d'une feuille Excel ("Feuil1") afin de pouvoir réutiliser les données qui y sont inscrites.

    Merci à tous !

  2. #2
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour,
    Peut être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CommandButton1_Click()
    MsgBox "Veuillez sélectionner la cellule A13"
    End Sub

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    764
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2008
    Messages : 764
    Par défaut sélection d'une cellule par l'utilisateur
    Non !?!
    Lorsque l'utilisateur a cliqué sur un CommandButton, la macro montre une feuille Excel "Feuil1" et l'utilisateur choisi une cellule. Les données de cette cellule doivent ensuite être reprises par la macro.

    Merci,

  4. #4
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    C'est déjà plus clair...
    Essaye ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim Cel As Range
    Sheets("Feuil1").Select
    Do
    Set Cel = Application.InputBox("Sélectionnez une cellule !", "Sélection de cellules", Type:=8)
    If Cel.Count > 1 Then
        MsgBox "Merci de ne sélectionner qu'une cellule"
    End If
    Loop While Cel.Count <> 1
    MsgBox ("La plage que vous avez séléctionnez est : " & Cel.Address)
    La ligne : MsgBox ("La plage que vous avez séléctionnez est : " & Cel.Address) n'est utile ici que pour te montrer que le code fonctionne...

  5. #5
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut
    Par contre il serait peut être intéressant de déclarer Cel en Variant, cela permet de contrôler si l'utilisateur annule la fenêtre de sélection (Input renvoie False, ce qui provoque une erreur lors du Set). Quitte ensuite a transvaser l'objet contenu dans le variant dans un objet range.
    [Edit]
    Ou alors utiliser On error resume Next avant le set puis on error goto 0 apres et contrôler si Cel est différent de Nothing.
    [/Edit]

    [Edit2]
    L'utilisation d'un Variant n'est en fait pas approprié, cela pose des soucis.
    Voila avec l'utilisation de On error, j'ai repris le code précédemment fourni et l'ai juste adapté pour contrôler la saisi de l'utilisateur.
    Les explications sont dans le 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
    Dim Cel As Range 'Par defaut initialisé a Nothing
    Dim SortieBoucle As Boolean 'Par defaut initialisé a False
     
        'On affiche la Feuil ou l'utilisateur doit choisir.
        'C'est un des tres rare cas ou l'on utilisera Select dans un code VBA
        Sheets("Feuil1").Select
     
        Do
            'On bloque la gestion d'erreur, si une erreur survient,
            'on passe à la ligne de code suivante
            On Error Resume Next
            'On recupère la saisie utilisateur
            'Si l'utilisateur annule, Cel ne change pas de contenu
            Set Cel = Application.InputBox("Sélectionnez une cellule !", "Sélection de cellules", Type:=8)
            'On remet la gestion d'erreur
            On Error GoTo 0
            'On verifie que l'utilisateur n'a pas appuyé sur "annuler" (Cel = Nothing)
            If Not Cel Is Nothing Then
                If Cel.Count > 1 Then
                    MsgBox "Merci de ne sélectionner qu'une cellule"
                Else
                    'Une seule cellule selectionné, on quitte
                    SortieBoucle = True
                End If
                'On repasse Cel à Nothing
                'Si on ne le fait pas, si l'utilisateur annule au prochain tour
                'Cel gardera sa valeur, il faut donc qu'il soit d'origine à Nothing
                Set Cel = Nothing
            Else
                'L'utilisateur a choisi d'annuler le choix de la cellule
                'On peut quitter
                SortieBoucle = True
            End If
        'On boucle jusqu'a ce que notre variable de sortie soit à True
        Loop Until SortieBoucle
     
        MsgBox ("La plage que vous avez séléctionnez est : " & Cel.Address)
    [/Edit2]

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    764
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2008
    Messages : 764
    Par défaut Ca marche !
    OK ca fonctionne plutôt bien ce code là

    Merci,

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

Discussions similaires

  1. sélectionner une cellule d'un TStringgrid
    Par marsupilami34 dans le forum Composants VCL
    Réponses: 10
    Dernier message: 12/02/2010, 20h00
  2. [2.0 DataGridView] comment sélectionner une cellule par le code
    Par juniorAl dans le forum Windows Forms
    Réponses: 5
    Dernier message: 01/07/2008, 19h46
  3. [VBA-Excel] - Demander à l'utilisateur de choisir une cellule
    Par MrYoYo dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/02/2007, 11h54
  4. [TStringGrid] Comment sélectionner une cellule ?
    Par zidenne dans le forum Composants VCL
    Réponses: 1
    Dernier message: 18/11/2005, 10h45
  5. [JTable] Sélectionner une cellule
    Par GENERYS dans le forum Composants
    Réponses: 2
    Dernier message: 12/10/2005, 15h57

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