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

Messages postés
14
Date d'inscription
vendredi 28 octobre 2011
Dernière intervention
29 novembre 2011
- - Dernière réponse : Akeen56
Messages postés
14
Date d'inscription
vendredi 28 octobre 2011
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
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
3
Merci
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.

Merci cs_Jack 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de cs_Jack
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
3
Merci
PS : Tu pourrais presque simplifier le tout avec cette unqiue ligne :
ThisWorkbook.Worksheets("Data").Range("A1").Value = InputBox("Quel et ton nom?")

Merci cs_Jack 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de cs_Jack
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
0
Merci
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)
Commenter la réponse de cs_Jack
Messages postés
14
Date d'inscription
vendredi 28 octobre 2011
Dernière intervention
29 novembre 2011
0
Merci
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
Commenter la réponse de Akeen56
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
0
Merci
manque un S dans "Quel es
t ton nom ?"
Commenter la réponse de cs_Jack
Messages postés
14
Date d'inscription
vendredi 28 octobre 2011
Dernière intervention
29 novembre 2011
0
Merci
Super! ça marche au poil! Merci pour votre rapidité et votre pertinence!

Titi
Commenter la réponse de Akeen56

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.