faire définir une plage de cellules à l'utilisateur

Le
Serge Nazarian
Bonjour,

Dans une procédure VBA pour Excel, je désire faire apparaître une
fenêtre popup le texte "Quelle est la plage de cellules à utiliser" et
qu'on puisse sélectionner à la souris ladite plage ou, éventuellement,
si on préfère, rentrer au clavier son adresse, par exemple L1C1:L3C3 ou
encore A1:C3, tout ça dans le but d'affecter à une variable le "range"
correspondant.
Par exemple :
Set Plage = Range("A1:C3")
ou
Set Plage = Range(L1C1:L3C3)
suivant l'adressage utilisé dans la feuille.

Quelqu'un saurait-il faire ?

Merci pour toute aide.
Cordialement,

--
Serge Nazarian
Pour m'écrire directement : http://cerbermail.com/?ZDkROVSJlu
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacky
Le #24483741
Bonjour,

Quelqu'un saurait-il faire ?


Essaie comme ceci
'--------------
Sub jj()
Set LaPlage = Application.InputBox("Selectionnez la plage de cellules à utiliser avec la souris.", "Saisie",
Type:=8)
MsgBox LaPlage.Address
End Sub
'--------------

--
Salutations
JJ


"Serge Nazarian" 4fb4ec1b$0$6824$
Bonjour,

Dans une procédure VBA pour Excel, je désire faire apparaître une fenêtre popup le texte "Quelle est la
plage de cellules à utiliser" et qu'on puisse sélectionner à la souris ladite plage ou, éventuellement, si
on préfère, rentrer au clavier son adresse, par exemple L1C1:L3C3 ou encore A1:C3, tout ça dans le but
d'affecter à une variable le "range" correspondant.
Par exemple :
Set Plage = Range("A1:C3")
ou
Set Plage = Range(L1C1:L3C3)
suivant l'adressage utilisé dans la feuille.

Quelqu'un saurait-il faire ?

Merci pour toute aide.
Cordialement,

--
Serge Nazarian
Pour m'écrire directement : http://cerbermail.com/?ZDkROVSJlu


Serge Nazarian
Le #24483721
Jacky a écrit le 17/05/2012 :
Bonjour,

Essaie comme ceci
'--------------
Sub jj()
Set LaPlage = Application.InputBox("Selectionnez la plage de cellules à
utiliser avec la souris.", "Saisie", Type:=8)
MsgBox LaPlage.Address
End Sub

--
Salutations
JJ



Impécable.
Merci beaucoup.

--
Serge Nazarian
Pour m'écrire directement : http://cerbermail.com/?ZDkROVSJlu
MichD
Le #24483791
Bonjour,

Pourquoi ne pas utiliser un tout petit formulaire (userform) avec 2 contrôles.

A ) tu ajoutes un contrôle supplémentaire : RefEdit1 pour la sélection de la
plage de cellules et un bouton de commande pour fermer la fenêtre et
récupérer dans une variable Objet "Rg" la plage sélectionnée par l'usager.

B ) Voici un exemple de code :

'----------------------------------------------
Private Sub CommandButton1_Click()
Dim X As MSForms.ReturnBoolean
RefEdit1_BeforeUpdate X
End Sub
'----------------------------------------------
Private Sub RefEdit1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
Dim Rg As Range
On Error Resume Next
If Not IsEmpty(Me.RefEdit1) Then
If TypeName(Range(Me.RefEdit1)) = "Range" Then
If Err <> 0 Then
Err = 0
RefEdit1 = ""
Cancel = True
Else
Set Rg = Range(Me.RefEdit1)
MsgBox Rg.Address
Unload Me
End If
End If
End If
End Sub
'----------------------------------------------

'Pour empêcher l'usager de fermer le formulaire par le X de la barre de titre
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode <> 1 Then
Cancel = True
End If
End Sub
'----------------------------------------------
Publicité
Poster une réponse
Anonyme