OVH Cloud OVH Cloud

Exit du macro

20 réponses
Avatar
Érico
Bonjour à tous,

J'aimerais lui dire que si je coche "annuler" qu'il sort de la macro
complètement, comment je fais celà?

Voici ma macro:
__________________________________
Sub DatePicker()
Dim A As Variant, B As Range, C As Integer
Set B = Application.InputBox(Prompt:="Sélectionner la cellule. Ensuite sur
(ok)", Type:=8)
Dim col As Integer
col = B.Cells.Column
Dim ligne As Integer
ligne = B.Cells.Row
Cells(ligne, col).Select
iFlag = Not ThisWorkbook.Sheets(1).CheckBoxes("Case1") = 1
If iFlag Then UserForm1.Show Else frmDPicker.Show
End Sub
__________________________________

10 réponses

1 2
Avatar
Érico
Tu changes complètement ma formule.
Elle ne fonctionne pas bien.


Sub SafeInputBox()
Dim B As Range
On Error Resume Next
Set B = Application.InputBox(Prompt:="Sélectionner la cellule. Ensuite
sur(ok)", Type:=8)
On Error GoTo 0
If Not B Is Nothing Then
MsgBox B.Address
Else
MsgBox "Annuler"
End If
iFlag = Not ThisWorkbook.Sheets(1).CheckBoxes("Case1") = 1
If iFlag Then UserForm1.Show Else frmDPicker.Show
End Sub
______________________________________________________________
"Alain CROS" a écrit dans le message de news:

Bonjour.

Sub SafeInputBox()
Dim B As Range
On Error Resume Next
Set B = Application.InputBox(Prompt:= _
"Sélectionner la cellule. Ensuite sur(ok)", Type:=8)
On Error GoTo 0
If Not B Is Nothing Then
MsgBox B.Address
Else
MsgBox "Annuler"
End If
End Sub

Alain CROS

"Érico" a écrit dans le message de news:
#
| Dans mon inputbox, j'ai un espace blanc pour aller chercher la cellule.
| J'ai un bouton "ok"
| J'ai un bouton "annuler"
|
| Quand je clique ok, il envoie la coordonnée dans "B"
| Le bouton "annuler", ça bogue.
| C'est pas vraiment le "B2 qui devient annuler.
|





Avatar
Érico
C'est compliqué.

Pas moyen avec le "cancel" de l'inputbox?


"Denys" a écrit dans le message de news:

Bonjour Érico,

Si, au lieu d'un inputbox tu utilisais un Userform avec 1 textbox où
l'usager écrirait ses données et 2 boutons de commande un OK et l'autre
avec
Cancel...

L'instruction pour le bouton Cancel serait:

Private Sub CommandButton2_Click()
Unload Userform1 (ce qui te ferait sortir complètement)
End Sub

Quant à ta macro, elle deviendrait:

Sub DatePicker()
Dim A As Variant, B As Range, C As Integer
Set B = Application.TextBox1(Prompt:="Sélectionner la cellule. Ensuite
sur (ok)", Type:=8)
etc.......

Est-ce que ça pourrait te convenir?

Denys




Dans mon inputbox, j'ai un espace blanc pour aller chercher la cellule.
J'ai un bouton "ok"
J'ai un bouton "annuler"

Quand je clique ok, il envoie la coordonnée dans "B"
Le bouton "annuler", ça bogue.
C'est pas vraiment le "B2 qui devient annuler.



"LSteph" a écrit dans le message de news:

a quel endroit?

"Érico" a écrit dans le message de news:

Non plus, ça bogue encore quand je clique "Annuler" et il sort avant
de
finir la macro....
J'ai l'impression qu'il faut mettre quelque chose entre les guillemets
pour l'équivalent du bouton "annuler"

if B="" then exit sub



"LSteph" a écrit dans le message de news:
%23aNKA%
Bonsoir Erico,

met une ligne après la ligne de l'inputbox
if B="" then exit sub

lSteph
"Érico" a écrit dans le message de news:

Bonjour à tous,

J'aimerais lui dire que si je coche "annuler" qu'il sort de la macro
complètement, comment je fais celà?

Voici ma macro:
__________________________________
Sub DatePicker()
Dim A As Variant, B As Range, C As Integer
Set B = Application.InputBox(Prompt:="Sélectionner la cellule.
Ensuite
sur (ok)", Type:=8)
Dim col As Integer
col = B.Cells.Column
Dim ligne As Integer
ligne = B.Cells.Row
Cells(ligne, col).Select
iFlag = Not ThisWorkbook.Sheets(1).CheckBoxes("Case1") = 1
If iFlag Then UserForm1.Show Else frmDPicker.Show
End Sub
__________________________________























Avatar
JLuc
Bonjour à toutes à tous et à Érico qui nous a tapoter de ses petits
doigt ce qui suit :

Tu changes complètement ma formule.
Elle ne fonctionne pas bien.


Sub SafeInputBox()
Dim B As Range
On Error Resume Next
Set B = Application.InputBox(Prompt:="Sélectionner la cellule. Ensuite
sur(ok)", Type:=8)
On Error GoTo 0
If Not B Is Nothing Then
MsgBox B.Address
Else
MsgBox "Annuler"
End If
iFlag = Not ThisWorkbook.Sheets(1).CheckBoxes("Case1") = 1
If iFlag Then UserForm1.Show Else frmDPicker.Show
End Sub


Je cherche et je n'arrive pas a trouver ce qu'est :
ThisWorkbook.Sheets(1).CheckBoxes("Case1")
C'est nul mais que veux tu. J'ai essayer de tester, quand on fait ok ca
bloque sur iFlag, quand on annule, ca bloque sur Set B.
quelle est ta version d'excel ? quels sont les objets que tu utilise
sur ta feuille (car je suppute que CheckBoxes("Case1") est un control
case a cocher)
joint ton classeur sur http://www.cjoint.com pour que l'on puisse voir
de quoi il retourne exactement
JLuc

--
Pour m'ecrire directement :

Tomorrow is another day

Avatar
Érico
Et voilà le lien
J'ai Excel 2000

http://cjoint.com/?kgwD7VQmyL


"JLuc" a écrit dans le message de news:

Bonjour à toutes à tous et à Érico qui nous a tapoter de ses petits doigt
ce qui suit :

Tu changes complètement ma formule.
Elle ne fonctionne pas bien.


Sub SafeInputBox()
Dim B As Range
On Error Resume Next
Set B = Application.InputBox(Prompt:="Sélectionner la cellule.
Ensuite sur(ok)", Type:=8)
On Error GoTo 0
If Not B Is Nothing Then
MsgBox B.Address
Else
MsgBox "Annuler"
End If
iFlag = Not ThisWorkbook.Sheets(1).CheckBoxes("Case1") = 1
If iFlag Then UserForm1.Show Else frmDPicker.Show
End Sub


Je cherche et je n'arrive pas a trouver ce qu'est :
ThisWorkbook.Sheets(1).CheckBoxes("Case1")
C'est nul mais que veux tu. J'ai essayer de tester, quand on fait ok ca
bloque sur iFlag, quand on annule, ca bloque sur Set B.
quelle est ta version d'excel ? quels sont les objets que tu utilise sur
ta feuille (car je suppute que CheckBoxes("Case1") est un control case a
cocher)
joint ton classeur sur http://www.cjoint.com pour que l'on puisse voir de
quoi il retourne exactement
JLuc

--
Pour m'ecrire directement :

Tomorrow is another day





Avatar
JLuc
Bonjour à toutes à tous et à Érico qui nous a tapoter de ses petits
doigt ce qui suit :

Et voilà le lien
J'ai Excel 2000

http://cjoint.com/?kgwD7VQmyL


"JLuc" a écrit dans le message de news:

Bonjour à toutes à tous et à Érico qui nous a tapoter de ses petits doigt
ce qui suit :

Tu changes complètement ma formule.
Elle ne fonctionne pas bien.


Sub SafeInputBox()
Dim B As Range
On Error Resume Next
Set B = Application.InputBox(Prompt:="Sélectionner la cellule. Ensuite
sur(ok)", Type:=8)
On Error GoTo 0
If Not B Is Nothing Then
MsgBox B.Address
Else
MsgBox "Annuler"
End If
iFlag = Not ThisWorkbook.Sheets(1).CheckBoxes("Case1") = 1
If iFlag Then UserForm1.Show Else frmDPicker.Show
End Sub


Je cherche et je n'arrive pas a trouver ce qu'est :
ThisWorkbook.Sheets(1).CheckBoxes("Case1")
C'est nul mais que veux tu. J'ai essayer de tester, quand on fait ok ca
bloque sur iFlag, quand on annule, ca bloque sur Set B.
quelle est ta version d'excel ? quels sont les objets que tu utilise sur ta
feuille (car je suppute que CheckBoxes("Case1") est un control case a
cocher)
joint ton classeur sur http://www.cjoint.com pour que l'on puisse voir de
quoi il retourne exactement
JLuc

-- Pour m'ecrire directement :

Tomorrow is another day





Franchement, je vois pas ce qui cloche, mais a l'air de teourner comme
tu veux avec la petite modife que j'ai faite, essaye et dis moi

Sub DatePicker()
'-------------------------------
'Je rajoute ceci
Dim A As Variant, B As Range, C As Integer
On Error GoTo fin
Set B = Application.InputBox("Sélectionner la cellule. Ensuite sur
(ok)", , , , , , , 8)
'If B <> "" Then Exit Sub
Dim col As Integer
col = B.Cells.Column
Dim ligne As Integer
ligne = B.Cells.Row
Cells(ligne, col).Select
'If Err <> 0 Then
' Err = 0
' Exit Sub
'Else
' For C = 1 To A
'jusqu'a ici
'-------------------------

iFlag = Not ThisWorkbook.Sheets(1).CheckBoxes("Case1") = 1
If iFlag Then UserForm1.Show Else frmDPicker.Show
fin:
End Sub

C'est seulement les lignes :
On error goto fin
fin:
le set B ... tu peux le laisser comme tu l'avais mis
JLuc

--
Pour m'ecrire directement :

Tomorrow is another day



Avatar
LSteph
Bonsoir Erico ,
remplace cette partie ainsi:
'-------------------------------

Dim A As Variant, B As Range, C As Integer, _
col As Integer, ligne As Integer
On Error Resume Next
Set B = Application.InputBox(Prompt:="Sélectionner la cellule. Ensuite sur
(ok)", Type:=8)

If B.Address = "" Then Exit Sub

On Error GoTo 0
col = B.Cells.Column

ligne = B.Cells.Row
Cells(ligne, col).Select
''''''...


'lSteph
"Érico" a écrit dans le message de news:
eXr%
Et voilà le lien
J'ai Excel 2000

http://cjoint.com/?kgwD7VQmyL


"JLuc" a écrit dans le message de news:

Bonjour à toutes à tous et à Érico qui nous a tapoter de ses petits doigt
ce qui suit :

Tu changes complètement ma formule.
Elle ne fonctionne pas bien.


Sub SafeInputBox()
Dim B As Range
On Error Resume Next
Set B = Application.InputBox(Prompt:="Sélectionner la cellule.
Ensuite sur(ok)", Type:=8)
On Error GoTo 0
If Not B Is Nothing Then
MsgBox B.Address
Else
MsgBox "Annuler"
End If
iFlag = Not ThisWorkbook.Sheets(1).CheckBoxes("Case1") = 1
If iFlag Then UserForm1.Show Else frmDPicker.Show
End Sub


Je cherche et je n'arrive pas a trouver ce qu'est :
ThisWorkbook.Sheets(1).CheckBoxes("Case1")
C'est nul mais que veux tu. J'ai essayer de tester, quand on fait ok ca
bloque sur iFlag, quand on annule, ca bloque sur Set B.
quelle est ta version d'excel ? quels sont les objets que tu utilise sur
ta feuille (car je suppute que CheckBoxes("Case1") est un control case a
cocher)
joint ton classeur sur http://www.cjoint.com pour que l'on puisse voir de
quoi il retourne exactement
JLuc

--
Pour m'ecrire directement :

Tomorrow is another day









Avatar
JLuc
Bonjour à toutes à tous et à LSteph qui nous a tapoter de ses petits
doigt ce qui suit :

Bonsoir Erico ,
remplace cette partie ainsi:
'-------------------------------

Dim A As Variant, B As Range, C As Integer, _
col As Integer, ligne As Integer
On Error Resume Next


Resume next ne suffit pas a contrecarre l'erreur car elle affiche quand
meme le userform pour le calendrier

Set B = Application.InputBox(Prompt:="Sélectionner la cellule. Ensuite sur
(ok)", Type:=8)


Sur cette ligne, c'est trop tard pour tester, si on fait annuler dans
l'inpubox l'erreur est immediate et ca bloque sur set B...

If B.Address = "" Then Exit Sub

On Error GoTo 0
col = B.Cells.Column

ligne = B.Cells.Row
Cells(ligne, col).Select
''''''...


C'est pas simple cette histoire !! :-?
JLuc

--
Pour m'ecrire directement :

Tomorrow is another day

Avatar
LSteph
Bonsoir JLuc,

Non chez moi cela marche impec, pas cette erreur,
comment l'obtiens tu?

lSteph

;-)
NB(arrête donc ces de tapotis et surtout c'est fatigant à toujours
redescendre en bas du message
sur ce forum on répond au dessus).

"JLuc" a écrit dans le message de news:

Bonjour à toutes à tous et à LSteph qui nous a tapoter de ses petits doigt
ce qui suit :

Bonsoir Erico ,
remplace cette partie ainsi:
'-------------------------------

Dim A As Variant, B As Range, C As Integer, _
col As Integer, ligne As Integer
On Error Resume Next


Resume next ne suffit pas a contrecarre l'erreur car elle affiche quand
meme le userform pour le calendrier

Set B = Application.InputBox(Prompt:="Sélectionner la cellule. Ensuite
sur (ok)", Type:=8)


Sur cette ligne, c'est trop tard pour tester, si on fait annuler dans
l'inpubox l'erreur est immediate et ca bloque sur set B...

If B.Address = "" Then Exit Sub

On Error GoTo 0
col = B.Cells.Column

ligne = B.Cells.Row
Cells(ligne, col).Select
''''''...


C'est pas simple cette histoire !! :-?
JLuc

--
Pour m'ecrire directement :

Tomorrow is another day





Avatar
Erico
Ben merci de votre collaboration.

Je suis chez moi, ce soir.
Je vais essayer ça demaine matin au bureau.

Érico
"LSteph" a écrit dans le message de news:

Bonsoir JLuc,

Non chez moi cela marche impec, pas cette erreur,
comment l'obtiens tu?

lSteph

;-)
NB(arrête donc ces de tapotis et surtout c'est fatigant à toujours
redescendre en bas du message
sur ce forum on répond au dessus).

"JLuc" a écrit dans le message de news:

Bonjour à toutes à tous et à LSteph qui nous a tapoter de ses petits
doigt ce qui suit :

Bonsoir Erico ,
remplace cette partie ainsi:
'-------------------------------

Dim A As Variant, B As Range, C As Integer, _
col As Integer, ligne As Integer
On Error Resume Next


Resume next ne suffit pas a contrecarre l'erreur car elle affiche quand
meme le userform pour le calendrier

Set B = Application.InputBox(Prompt:="Sélectionner la cellule. Ensuite
sur (ok)", Type:=8)


Sur cette ligne, c'est trop tard pour tester, si on fait annuler dans
l'inpubox l'erreur est immediate et ca bloque sur set B...

If B.Address = "" Then Exit Sub

On Error GoTo 0
col = B.Cells.Column

ligne = B.Cells.Row
Cells(ligne, col).Select
''''''...


C'est pas simple cette histoire !! :-?
JLuc

--
Pour m'ecrire directement :

Tomorrow is another day









Avatar
JLuc
Bonjour à toutes à tous et à LSteph qui nous a tapoter de ses petits
doigt ce qui suit :

Bonsoir JLuc,

Non chez moi cela marche impec, pas cette erreur,
comment l'obtiens tu?

lSteph

;-)
Chez moi, ca marche comme ckez Erico, a savoir :

quand je lance je selectionne une cellule je fais ok ca ouvre le
userform pour le calendrier (sur son fichier joint naturellement) et la
date est mise dans la cellule selectionnee
quand je lance je fais annuler, error 424 objet requis et deboguage sur
la ligne set B...
et la je coince

NB(arrête donc ces de tapotis et surtout c'est fatigant à toujours
redescendre en bas du message
sur ce forum on répond au dessus).
Ok, je vais modifie ceci dans la mesure de mes moyens rofl

@+
JLuc


"JLuc" a écrit dans le message de news:

Bonjour à toutes à tous et à LSteph qui nous a tapoter de ses petits doigt
ce qui suit :

Bonsoir Erico ,
remplace cette partie ainsi:
'-------------------------------

Dim A As Variant, B As Range, C As Integer, _
col As Integer, ligne As Integer
On Error Resume Next


Resume next ne suffit pas a contrecarre l'erreur car elle affiche quand
meme le userform pour le calendrier

Set B = Application.InputBox(Prompt:="Sélectionner la cellule. Ensuite sur
(ok)", Type:=8)


Sur cette ligne, c'est trop tard pour tester, si on fait annuler dans
l'inpubox l'erreur est immediate et ca bloque sur set B...

If B.Address = "" Then Exit Sub

On Error GoTo 0
col = B.Cells.Column

ligne = B.Cells.Row
Cells(ligne, col).Select
''''''...


C'est pas simple cette histoire !! :-?
JLuc

-- Pour m'ecrire directement :

Tomorrow is another day






--
Pour m'ecrire directement :

Tomorrow is another day



1 2