faire définir une plage de cellules à l'utilisateur
3 réponses
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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jacky
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" a écrit dans le message de news: 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
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" <nospam.fr@nospam.fr> a écrit dans le message de news:
4fb4ec1b$0$6824$426a74cc@news.free.fr...
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
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" a écrit dans le message de news: 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
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
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
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
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 '----------------------------------------------
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
'----------------------------------------------
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 '----------------------------------------------