[Catégorie modifiée VB6 -> VBA] Renvoyer une valeur d'inputBox dans une cellule

Résolu
Akeen56 Messages postés 14 Date d'inscription vendredi 28 octobre 2011 Statut Membre Dernière intervention 29 novembre 2011 - 28 oct. 2011 à 16:27
Akeen56 Messages postés 14 Date d'inscription vendredi 28 octobre 2011 Statut Membre Dernière intervention 29 novembre 2011 - 28 oct. 2011 à 17:29
Bonjour à tous,

ceci est mon premier post. J'ai d'ailleurs un peu honte de vous demander de l'aide pour un problème si basique, mais bon il faut bien commencer.
Mon but est de pouvoir renvoyer une valeur entrée dans une inputbox vers une cellule de fichier excel. Voici le pauvre code que j'ai pu créer.

Sub testboite()
Dim MySheet As Worksheet
Dim MyPlage As Range
Dim MyRep As Variant
Dim MyRepVal As Variant
MyRep = InputBox("Quel et ton nom?")
MsgBox MyRep
MyRepVal = Val(MyRep)
Set MySheet = ThisWorkbook.Worksheets("Data")
MySheet.Activate
MyPlage = MySheet.Range("A1")
MyPlage.Value = MyRepVal
End Sub

Bien entendu ceci ne marche pas!

Quelqu'un pour m'aider dans ma modeste quête?

Merci d'avance

Titi

6 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
28 oct. 2011 à 17:20
Ton code parait correct et corrigé efficacement.
Il te manque juste un Set devant la ligne qui cause problème :
Lorsque tu affectes une variable de type Objet (comme Worksheet ou Range), le Set est obligatoire.
Set MyPlage = MySheet.Range("A1")
Je pense que l'aide, accessible par le bouton te signalant l'erreur, doit en parler.

A noter : Le MyPlage.Select n'est pas nécessaire puisque tu as correctement et complètement nommé tes objets.
L'utilisation de .Select (et de Selection) a tendance à ralentir le code. Dans ton cas, c'est négligeable.
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
28 oct. 2011 à 17:22
PS : Tu pourrais presque simplifier le tout avec cette unqiue ligne :
ThisWorkbook.Worksheets("Data").Range("A1").Value = InputBox("Quel et ton nom?")
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
28 oct. 2011 à 16:52
Bonjour et bienvenu.

D'abord, les recommandations :
Le VB des logiciels Office est du VBA et non du VB6 --> Catégorie modifiée
Lorsque tu as besoin de coller du code, utilise la coloration syntaxique (3ème icone à droite) = plus facile à relire et conserve l'indentation du code.
Merci

Dim MyRep As Variant
Pas judicieux : Puisque tu attends des caractères, mieux vaudrait du As String

MyRepVal = Val(MyRep)
Comme expliqué dans l'aide, la fonction Val transforme une donnée en chiffre. Dans ton cas, si tu entres du texte, Val donnera toujours 0.
Cette ligne est superflue - ne sert à rien.

Quand tu dis " ça ne marche pas ", essaye d'expliquer clairement ton problème :
- quelle erreur (quel code, description),
- sur quelle ligne apparait l'erreur
- ce qui devrait se passer et ce qui se passe

Vala
Jack, =fr MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Akeen56 Messages postés 14 Date d'inscription vendredi 28 octobre 2011 Statut Membre Dernière intervention 29 novembre 2011
28 oct. 2011 à 17:12
Bonjour,

merci pour cette réponse rapide et pour les recommandations, je ferai attention la fois prochaine.

Voici le code:
Sub testboite()
Dim MySheet As Worksheet
Dim MyPlage As Range
Dim MyRep As String
MyRep = InputBox("Quel et ton nom?")
MsgBox MyRep
Set MySheet = ThisWorkbook.Worksheets("Data")
MySheet.Activate
MyPlage = MySheet.Range("A1")
MyPlage.Select
MyPlage.Value = MyRep
End Sub


Pour donner plus d'explications sur le problème, l'erreur retournée est de type Run-time error '91' - Object variable or With block variable not set. Le processus s'arrête à la ligne
MyPlage = MySheet.Range("A1")


Ce qui devrait se passer c'est: afficher dans la cellule A1 de la feuille "Data" l'entrée spécifiée dans l'inputbox.

J'espère que ça sera suffisamment clair.

N'hésitez pas à commenter, je suis preneur de remarques.

Merci d'avance

Titi
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
28 oct. 2011 à 17:24
manque un S dans "Quel es
t ton nom ?"
0
Akeen56 Messages postés 14 Date d'inscription vendredi 28 octobre 2011 Statut Membre Dernière intervention 29 novembre 2011
28 oct. 2011 à 17:29
Super! ça marche au poil! Merci pour votre rapidité et votre pertinence!

Titi
0
Rejoignez-nous