Inputbox

Gruick

XLDnaute Accro
Bonjour Forum,

Je viens de m'apercevoir, après des années de VBA, qu'il est difficile de gérér le bouton ANNULER des inputbox, autrement que par l'ineffable instruction On Error GoGo X, ou ruser en ne mettant rien en réponse, avec if Gruick = ""
(Gruick étant la variable)

Avez-vous rencontré ce problème, et trouvé une solution plus élégante ?
(Ceci dit, ça ne m'empêchera pas de ronfler !)

Merci,

Votre dévoué Gruick
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Inputbox

Bonjour,

Quel InputBox()?

InputBox()

Pour choisir un champ et détecter Annuler, je ne connais pas d'autre méthode que On Error.

Code:
Sub xx()
On Error Resume Next
Set monchamp = Application.InputBox(prompt:="Choisissez un champ", Type:=8)
If Err = 0 Then
  For Each i In monchamp
    i.Value = UCase(i.Value)
  Next i
Else
  MsgBox "annulé"
End If
On Error GoTo 0
End Sub



jb
 
Dernière édition:

Gruick

XLDnaute Accro
Re : Inputbox

Bonjour Jacques

C'est pour la touche finale du suivi de la Route du Rhum, choisir quelques bateaux, (et comparer leur route sur un graphique, mais ça c'est fait).
Le choix doit s'arrêter si j'appuie sur la touche "ANNUL". Voilà ce que j'ai fait, ça marche mais ce n'est pas très pro.

Code:
Sub Macro2()
' Macro2 Macro
' Macro enregistrée le 19/11/2010 par Gruick
Sheets("Comparaison").Cells.ClearContents
Sheets("Adaptation").Activate
1:
Set choix = Application.InputBox("choisissez un bateau", Type:=8)
On Error GoTo 2
Range(choix, choix.End(xlDown).Offset(0, 1)).Copy Destination:=Sheets("Comparaison").Cells(1, 256).End(xlToLeft).Offset(0, 2)
GoTo 1
2:
Sheets("Comparaison").Columns("A:A").Delete Shift:=xlToRight
Sheets("Adaptation").Columns("A:A").Copy Destination:=Sheets("Comparaison").Cells(1, 1)
End Sub

Bon, l'important c'est que ça fonctionne, mais je deviens exigeant, avec l'âge.
à rapprocher de la discussion
https://www.excel-downloads.com/threads/suivi-route-du-rhum.152817/

Gruick
 
Dernière édition:

skoobi

XLDnaute Barbatruc
Re : Inputbox

Bonjour Gruick :),

utilise l'aide et cela t'aidera :):

Utilisez la méthode InputBox lorsque vous souhaitez afficher une simple boîte de dialogue pour saisir des informations qui seront utilisées dans une macro. La boîte de dialogue possède un bouton OK et un bouton Annuler. Si vous cliquez sur le bouton OK, la méthode InputBox renvoie la valeur saisie dans la boîte de dialogue. Si vous cliquez sur le bouton Annuler, la méthode InputBox renvoie la valeur False

;).
 

Gruick

XLDnaute Accro
Re : Inputbox

Re,

Ooops, j'avais essayé bêtement avec VbCancel, sans succès.

Merci, je vais zieuter tout ça après manger, du poisson (désolé carcharodon-carcharias) vu que c'est vendredi, mais j'en mange tous les jours quasiment, j'adore.

Un papillon, un requin qui parlent la même langue qu'un cochon, il n'y a que sur XLD qu'on voit ça !!!:p

Merci à tous

Gruick
 
G

Guest

Guest
Re : Inputbox

Bonjour,

Code:
Sub Macro2()
' Macro2 Macro
' Macro enregistrée le 19/11/2010 par Gruick
Dim Choix As Range
Sheets("Comparaison").Cells.ClearContents
Sheets("Adaptation").Activate
On Error Resume Next
Do
    Set Choix = Application.InputBox("choisissez un bateau", Type:=8)
    If Not Choix Is Nothing Then
        Range(Choix, Choix.End(xlDown).Offset(0, 1)).Copy Destination:=Sheets("Comparaison").Cells(1, 256).End(xlToLeft).Offset(0, 2)
    End If
Loop While Not Choix Is Nothing
Sheets("Comparaison").Columns("A:A").Delete Shift:=xlToRight
Sheets("Adaptation").Columns("A:A").Copy Destination:=Sheets("Comparaison").Cells(1, 1)
End Sub

A+
 
G

Guest

Guest
Re : Inputbox

Re,

Oui, j'avais oublié Set Choix = nothing en début de boucle

Code:
Sub Macro2()
' Macro2 Macro
' Macro enregistrée le 19/11/2010 par Gruick
Dim Choix As Range
Sheets("Comparaison").Cells.ClearContents
Sheets("Adaptation").Activate
On Error Resume Next
Do
   [COLOR=red][B] Set Choix = Nothing[/B][/COLOR]
    Set Choix = Application.InputBox("choisissez un bateau", Type:=8)
    If Not Choix Is Nothing Then
        Range(Choix, Choix.End(xlDown).Offset(0, 1)).Copy Destination:=Sheets("Comparaison").Cells(1, 256).End(xlToLeft).Offset(0, 2)
    End If
Loop While Not Choix Is Nothing
Sheets("Comparaison").Columns("A:A").Delete Shift:=xlToRight
Sheets("Adaptation").Columns("A:A").Copy Destination:=Sheets("Comparaison").Cells(1, 1)
End Sub

A+
 

FJPT

XLDnaute Junior
Re : Inputbox

Bonjour et bonne année 2011 à toutes et à tous

Confronté à un problème d'Inputbox pour ne saisir que les caractères alpha en majuscule et pouvoir utiliser la touche "Annuler" je me suis adressé à mon Forum favori.

Voila comment j'ai contourné la difficulté en initialisant l'inputbox avec un blanc. Jusqu'à présent ça marche.

J'espère ne pas faire hurler les puristes mais, si hérésie il y a, merci de me le dire.

Sub changdate()

Dim letcol As String

Do
letcol = InputBox("Entrez la lettre de la colonne à traiter en majuscule", "Lettre de colonne", " ")
If Len(letcol) = 0 Then Exit Sub
Loop While letcol = " " Or letcol < Chr(65) Or letcol > Chr(90)

End Sub

Encore bonne année à toutes et à tous

JP
 

Statistiques des forums

Discussions
312 307
Messages
2 087 097
Membres
103 468
dernier inscrit
TRINITY