Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Refedit , gestion de la plage sélectionnée

4 réponses
Avatar
Sylian
J'ai une useform avec un refedit afin de sélectionner une plage de donnée.
----------------------------------------------------------------------
Question 1 :
----------------------------------------------------------------------
Comment générer un message d'erreur si la personne a omis de renseigner
le refedit et qu'il a déjà cliquer sur OK ?

Private Sub CommandButton1_Click()

'Teste en premier si une plage de données a été rentrée
'c'est le seul champ de l'interface non prérempli

If RefEdit1.Value = "" Then
Msgxbox "Fill data range first !", vbOKOnly + vbRetry, "Error"
Exit Sub
End If


Initialisation.Hide
'début de la macro
(...)


Ca me parrassait simple mais ce n'est apparament pas la bonne solution !

----------------------------------------------------------------------
Question 2 :
----------------------------------------------------------------------
J'aimerai que fl1 soit la feuille où est choisie ma plage de mon
refedit. Avant c'était systématiquement la feuille 1 (comme suit) et ça
m'arrangeait ! Mais là, je me heurte à un problème de vocabulaire.

Dim fl1 As Worksheet
Set fl1 = Sheets(1)

???? Set fl1=Sheets.Refedit1 ? J'en ai essayé plein sans succès !
----------------------------------------------------------------------

MERCI BEAUCOUP d'avance pour votre coup de pouce !

4 réponses

Avatar
Daniel.C
Bonjour.
1.
Ca fonctionne chez moi avec la syntaxe :

If RefEdit1.Value = "" Then
MsgBox "Fill data range first !", vbOKOnly + vbRetry, "Error"
Unload Me
Exit Sub
End If

Quel est ton problème ?
2. masque les autres feuilles.
Cordialement.
Daniel
"Sylian" a écrit dans le message de news:
487b2a46$0$14101$
J'ai une useform avec un refedit afin de sélectionner une plage de donnée.
----------------------------------------------------------------------
Question 1 :
----------------------------------------------------------------------
Comment générer un message d'erreur si la personne a omis de renseigner le
refedit et qu'il a déjà cliquer sur OK ?

Private Sub CommandButton1_Click()

'Teste en premier si une plage de données a été rentrée
'c'est le seul champ de l'interface non prérempli

If RefEdit1.Value = "" Then
Msgxbox "Fill data range first !", vbOKOnly + vbRetry, "Error"
Exit Sub
End If


Initialisation.Hide
'début de la macro
(...)


Ca me parrassait simple mais ce n'est apparament pas la bonne solution !

----------------------------------------------------------------------
Question 2 :
----------------------------------------------------------------------
J'aimerai que fl1 soit la feuille où est choisie ma plage de mon refedit.
Avant c'était systématiquement la feuille 1 (comme suit) et ça
m'arrangeait ! Mais là, je me heurte à un problème de vocabulaire.

Dim fl1 As Worksheet
Set fl1 = Sheets(1)

???? Set fl1=Sheets.Refedit1 ? J'en ai essayé plein sans succès !
----------------------------------------------------------------------

MERCI BEAUCOUP d'avance pour votre coup de pouce !


Avatar
Sylian
Bonjour Daniel C.

Merci beaucoup pour ton aide ... J'ai retiré le Unload mais en effet ça
fonctionne. Je ne comprends pas pourquoi il me générait une erreur
récurrente de compilation à ce sujet.

Pour la 2ème question, j'ai en fait une feuille source (fl1) et le
résultat de ma macro est recopié sur une feuille destination (fl2).
Comment identifier la feuille où j'ai choisi de prendre ma plage de
données via le refedit ?
Je ne veux rien masquer car je prendre mes données dans n'importe quelle
feuille du classeur ouvert.



Daniel.C a écrit :
Bonjour.
1.
Ca fonctionne chez moi avec la syntaxe :

If RefEdit1.Value = "" Then
MsgBox "Fill data range first !", vbOKOnly + vbRetry, "Error"
Unload Me
Exit Sub
End If

Quel est ton problème ?
2. masque les autres feuilles.
Cordialement.
Daniel
"Sylian" a écrit dans le message de news:
487b2a46$0$14101$
J'ai une useform avec un refedit afin de sélectionner une plage de donnée.
----------------------------------------------------------------------
Question 1 :
----------------------------------------------------------------------
Comment générer un message d'erreur si la personne a omis de renseigner le
refedit et qu'il a déjà cliquer sur OK ?

Private Sub CommandButton1_Click()

'Teste en premier si une plage de données a été rentrée
'c'est le seul champ de l'interface non prérempli

If RefEdit1.Value = "" Then
Msgxbox "Fill data range first !", vbOKOnly + vbRetry, "Error"
Exit Sub
End If


Initialisation.Hide
'début de la macro
(...)


Ca me parrassait simple mais ce n'est apparament pas la bonne solution !

----------------------------------------------------------------------
Question 2 :
----------------------------------------------------------------------
J'aimerai que fl1 soit la feuille où est choisie ma plage de mon refedit.
Avant c'était systématiquement la feuille 1 (comme suit) et ça
m'arrangeait ! Mais là, je me heurte à un problème de vocabulaire.

Dim fl1 As Worksheet
Set fl1 = Sheets(1)

???? Set fl1=Sheets.Refedit1 ? J'en ai essayé plein sans succès !
----------------------------------------------------------------------

MERCI BEAUCOUP d'avance pour votre coup de pouce !






Avatar
Daniel.C
f = Range(RefEdit1.Value).Parent.Name
Daniel
"Sylian" a écrit dans le message de news:
487b6ce8$0$9738$
Bonjour Daniel C.

Merci beaucoup pour ton aide ... J'ai retiré le Unload mais en effet ça
fonctionne. Je ne comprends pas pourquoi il me générait une erreur
récurrente de compilation à ce sujet.

Pour la 2ème question, j'ai en fait une feuille source (fl1) et le
résultat de ma macro est recopié sur une feuille destination (fl2).
Comment identifier la feuille où j'ai choisi de prendre ma plage de
données via le refedit ?
Je ne veux rien masquer car je prendre mes données dans n'importe quelle
feuille du classeur ouvert.



Daniel.C a écrit :
Bonjour.
1.
Ca fonctionne chez moi avec la syntaxe :

If RefEdit1.Value = "" Then
MsgBox "Fill data range first !", vbOKOnly + vbRetry, "Error"
Unload Me
Exit Sub
End If

Quel est ton problème ?
2. masque les autres feuilles.
Cordialement.
Daniel
"Sylian" a écrit dans le message de news:
487b2a46$0$14101$
J'ai une useform avec un refedit afin de sélectionner une plage de
donnée.
----------------------------------------------------------------------
Question 1 :
----------------------------------------------------------------------
Comment générer un message d'erreur si la personne a omis de renseigner
le refedit et qu'il a déjà cliquer sur OK ?

Private Sub CommandButton1_Click()

'Teste en premier si une plage de données a été rentrée
'c'est le seul champ de l'interface non prérempli

If RefEdit1.Value = "" Then
Msgxbox "Fill data range first !", vbOKOnly + vbRetry, "Error"
Exit Sub
End If


Initialisation.Hide
'début de la macro
(...)


Ca me parrassait simple mais ce n'est apparament pas la bonne solution !

----------------------------------------------------------------------
Question 2 :
----------------------------------------------------------------------
J'aimerai que fl1 soit la feuille où est choisie ma plage de mon
refedit. Avant c'était systématiquement la feuille 1 (comme suit) et ça
m'arrangeait ! Mais là, je me heurte à un problème de vocabulaire.

Dim fl1 As Worksheet
Set fl1 = Sheets(1)

???? Set fl1=Sheets.Refedit1 ? J'en ai essayé plein sans succès !
----------------------------------------------------------------------

MERCI BEAUCOUP d'avance pour votre coup de pouce !







Avatar
Sylian
Daniel.C a écrit :
f = Range(RefEdit1.Value).Parent.Name
Daniel


------------------------------------------------------
J'ai essayé un glorieux :

Dim fl1 As Worksheet
Set fl1 = Range(RefEdit1.Value).Parent.Name

Puis après avoir essuyé un gros bug j'ai tenté un :

Set fl1 = Sheets(Range(RefEdit1.Value).Parent.Name)

Et là ... SUCCES !


MERCI BEAUCOUP DANIEL !