VBA : Variable d'un Inputbox dans une cellule [Fermé]

Signaler
Messages postés
26
Date d'inscription
mardi 13 janvier 2004
Statut
Membre
Dernière intervention
29 juillet 2007
-
cipango
Messages postés
26
Date d'inscription
mardi 13 janvier 2004
Statut
Membre
Dernière intervention
29 juillet 2007
-
Rebonjour à tous,
Le code suivant bloque à partir de "Range("A1").... " Pourquoi ?
Merci d'avance pour votre aide.



Dim NOM, PRENOM As String

Sub Workbook_Open()

MsgBox "Nous allons vous demander vos coordonnées", vbDefaultButton1
Reponse = MsgBox("Voulez-vous continuer ?", vbYesNo)
If Reponse = vbNo Then Exit Sub
NOM = InputBox("Indiquez votre nom : ", "IDENTIFICATION")
PRENOM = InputBox("Indiquez votre prénom", "IDENTIFICATION")

Range("A1").Text = NOM 'Ca ne marche pas
Range("A2").Text = PRENOM 'Ca ne marche pas

End Sub

16 réponses

Messages postés
2075
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
187
;-)

Un petit truc !! L'objet "Range", sous Excel, comme sous VBA Excel, n'est utile, et réellement fonctionnel que sur une PLAGE de cellules... "Range" est automatiquement utilisé quand on dit à Excel d'enregistrer une macro, mais c'est pas du vrai dev, ça....

Si l'on doit adresser UNE cellule, c'est l'objet Cells qu'il faut utiliser, pas Range.. Si on doit utiliser une colonne, c'est l'objet Columns(x), une ligne, Rows(x)..... Bref, pour faire du bon code, il faut utiliser les bons objets !!

C'est pas une critique !! Vous verrez, ça vous servira !! Faut bien penser !! ;-)

Workbook, au singulier, plantera, car cela implique la création d'une classe d'objets... Il faut utiliser Workoooks(x) (au pluriel), qui là, fait référence à une collection.... WorkSheet1, idem !! Plantagua !! C'est Sheets(x), l'objet à utiliser...

Un exemple de code : Workbooks(1).sheets(1).cells(1,1).value

;-)

A votre service !! ;-) Mais tout cela reste encore à développer !! Ce n'est qu'une partie de l'iceberg !! ;-) Reste un milliard de choses à expliquer !! ;-)

Mais on es là pour ça, me direz-vous !! ;-)

Wild and Free
1
Merci

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

CCM 62532 internautes nous ont dit merci ce mois-ci


qu'est ce que range ?
une function ? faudrait la voir.
une textbox ou l'équivalent ? dans ce cas range(index).text=??
range(0).text range(1).text ...
ou si index calculé dans a1 et a2
range(a1).text range(a2).text
range en tout cas n'est pas une instruction VB
Messages postés
26
Date d'inscription
mardi 13 janvier 2004
Statut
Membre
Dernière intervention
29 juillet 2007
5
Range n'est pas une instruction de VB mais une manière de définir une plage de cellule dans VBA Excel. On peut aussi utiliser Cells, je crois. Le problème, c'est que le nom demandé dans l'input box se trouve bien dans la variable Nom, mais que cette variable n'est apparemment pas reconnue par range ou cells qui sont des objets de la feuille de calcul d'Excel.
Si c'est bien le problème, comment faire pour qu'une variable soit reconnue partout ? J'ai essayé avec Static Nom as ... sans effet.
Merci de votre aide.

est-ce que range("A1").text="Exemple" fonctionne ?
si non ça ne vient pas de la variable "nom"
si oui, il n'y a pas de raison.
Messages postés
26
Date d'inscription
mardi 13 janvier 2004
Statut
Membre
Dernière intervention
29 juillet 2007
5
Bien vu, d'essayer avec des " ", pour essayer sans la variable.
En fait je viens de résoudre mon problème. Ca marche avec ou sans " ", mais en utilsant Range("A1").value au lieu de Range("A1").text
Merci pour l'aide.
Il me reste encore à résoudre un problème plus complexe. "Dérivée et tangente sur un graphe Excel" lancé sur le forum il y a quelques heures et qui n'a pas trop de succès pour le moment...
salut

j'ai essayé ton vb sur Excel 97

en mettant
Range("A1").value=nom


ça marche chez moi
Messages postés
26
Date d'inscription
mardi 13 janvier 2004
Statut
Membre
Dernière intervention
29 juillet 2007
5
Ca ne m'étonne pas du tout. J'ai déjà utilisé range(
Ca ne m'étonne pas du tout. J'ai déjà utilisé range("A1").value sur une autre machine ( avec Excel 97 justement ) et il me semble que ça marchait. Ici, chez moi, j'ai Excel 2000 et apparement ça ne marche pas...
C'est quand même pas toujours très logique, l'évolution des versions 95, 97, 2000, XP...
Messages postés
70
Date d'inscription
lundi 3 novembre 2003
Statut
Membre
Dernière intervention
23 septembre 2008
17
resalut
je viens de tester sur excel 2000 mon range value fonctionne sur workbook_open
voici le code testé sur 97 et nt et sur excel 200 et W 2000
sub workbook-open()
nom=inputbox("entrer un nom")
Range("A1").value=nom

pas de probleme particuliers

as-tu coché dans options, general, parametres : style de reference L1C1 ( ca pourrait peut-etre venir de la ) donc range ("A1") ne fonctionne pas

A+
Essayer.........des fois ça marche............
Salut a toi !!

Lorsque tu affecte des cellules sous excell, quelques soit la methode (range,cells..) il faut que tu precise la feuille sur laquelle (ton code est placé dans l'evt workbook_Open) tu veux agir en passant par collection de feuilles worksheets ou par l'instructuin activesheet pour la feuille courante.

A+
Messages postés
26
Date d'inscription
mardi 13 janvier 2004
Statut
Membre
Dernière intervention
29 juillet 2007
5
Justement...
Ca marche même si on ne précise pas:
Workbook.Worksheet1.Range("A1").value
Ce qui signifie que c'est la sheet1 ( celle qui est active ) qui est prise par défaut ?
Messages postés
2075
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
187
;-)

Cells(N° Ligne, N° Colonne).Value=Nom

;-)

Wild and Free
Merci pour tous ces conseills avisés.
J'ai écrit workbook sans s et sheet de manière approximative, sahant qu'il y avait des erreurs, mais comptant bien sur les Info express automatique de l'éditeur VBA pour me proposer la bonne syntaxe.
Il faut tout de même que je potasse un peu la difference entre les classes d'objets et les collections et tout ce méli mélo...
Encore merci et à plus.
Cipango.
justement quelle est la difference ??

merci
Messages postés
26
Date d'inscription
mardi 13 janvier 2004
Statut
Membre
Dernière intervention
29 juillet 2007
5
Désolé, mais je n'ai encore pas eu le temps de chercher à comprendre les modules de classe et autres concepts de VBA. En fait je n'ai pas besoin de ces fonctions pour le moment dans VBA.
Bon courage dans tes recherches. Il y a certainement quelqu'un de compétent prêt à t'aider sur ce site.
Bonne soirée.