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 !
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 !
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
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,
C'est déjà plus clair...
Essaye ceci :
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...
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)
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.
[/Edit2]
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)
++
Qwaz
MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
Ma page perso DVP
Dernier et SeulTutoriel : VBA & Internet Explorer
Dernière contribution : Lien Tableau Structuré et UserForm
L'utilisation de l’éditeur de message
OK ca fonctionne plutôt bien ce code là
Merci,
Partager