Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

écriture VBA

8 réponses
Avatar
mrc
Bonjour,

je débute dans le langage VBA et pour cela je ne fais qu'appliquer ce que je
peux trouver sur la "toile" pour commencer.
j'ai donc commencé par une "userform" dans lequel j'ai mis deux contrôles
(insérer le nom et le prénom) et à côté deux boutons de commande.
sur celui qui concerne la validation il est fait pour que quand on entre des
infos celles ci soient transférées dans une autre feuille.
J'ai beau recopier exactement il me trouve une erreur et pointe le "point"
avant Value.
Voici ce que j'ai écrit, merci à celui ou celle qui pourra me débloquer et
m'expliquer où est mon erreur:
Private Sub cmdOK_Click()
Sheets("Donnees").Range("A1").Value = Me.txtNom.Text

8 réponses

Avatar
LSteph
Bonjour,

chez moi avec un userform un bouton et un textbox ton code fonctionne.

Cordialement.

--
lSteph

mrc a écrit :
Bonjour,

je débute dans le langage VBA et pour cela je ne fais qu'appliquer ce que je
peux trouver sur la "toile" pour commencer.
j'ai donc commencé par une "userform" dans lequel j'ai mis deux contrôles
(insérer le nom et le prénom) et à côté deux boutons de commande.
sur celui qui concerne la validation il est fait pour que quand on entre des
infos celles ci soient transférées dans une autre feuille.
J'ai beau recopier exactement il me trouve une erreur et pointe le "point"
avant Value.
Voici ce que j'ai écrit, merci à celui ou celle qui pourra me débloquer et
m'expliquer où est mon erreur:
Private Sub cmdOK_Click()
Sheets("Donnees").Range("A1").Value = Me.txtNom.Text




Avatar
JPMonnier
Bonjour, si ta ligne de code
Sheets("Donnees").Range("A1").Value = Me.txtNom.Text
n'est pas dans le bouton Ok de ta userform, remplace ME par le nom de ta
userform
Cordialement
JPMonnier

mrc a écrit :
Bonjour,

je débute dans le langage VBA et pour cela je ne fais qu'appliquer ce que je
peux trouver sur la "toile" pour commencer.
j'ai donc commencé par une "userform" dans lequel j'ai mis deux contrôles
(insérer le nom et le prénom) et à côté deux boutons de commande.
sur celui qui concerne la validation il est fait pour que quand on entre des
infos celles ci soient transférées dans une autre feuille.
J'ai beau recopier exactement il me trouve une erreur et pointe le "point"
avant Value.
Voici ce que j'ai écrit, merci à celui ou celle qui pourra me débloquer et
m'expliquer où est mon erreur:
Private Sub cmdOK_Click()
Sheets("Donnees").Range("A1").Value = Me.txtNom.Text




Avatar
JPMonnier
"mrc" a écrit dans le message de
news:%
Bonjour,

je débute dans le langage VBA et pour cela je ne fais qu'appliquer ce que
je peux trouver sur la "toile" pour commencer.
j'ai donc commencé par une "userform" dans lequel j'ai mis deux contrôles
(insérer le nom et le prénom) et à côté deux boutons de commande.
sur celui qui concerne la validation il est fait pour que quand on entre
des infos celles ci soient transférées dans une autre feuille.
J'ai beau recopier exactement il me trouve une erreur et pointe le "point"
avant Value.
Voici ce que j'ai écrit, merci à celui ou celle qui pourra me débloquer et
m'expliquer où est mon erreur:
Private Sub cmdOK_Click()
Sheets("Donnees").Range("A1").Value = Me.txtNom.Text




Avatar
sab
mrc a écrit :
Bonjour,

je débute dans le langage VBA et pour cela je ne fais qu'appliquer ce que je
peux trouver sur la "toile" pour commencer.
j'ai donc commencé par une "userform" dans lequel j'ai mis deux contrôles
(insérer le nom et le prénom) et à côté deux boutons de commande.
sur celui qui concerne la validation il est fait pour que quand on entre des
infos celles ci soient transférées dans une autre feuille.
J'ai beau recopier exactement il me trouve une erreur et pointe le "point"
avant Value.
Voici ce que j'ai écrit, merci à celui ou celle qui pourra me débloquer et
m'expliquer où est mon erreur:
Private Sub cmdOK_Click()
Sheets("Donnees").Range("A1").Value = Me.txtNom.Text



Bonjour,

Je ne suis pas un specialiste en VBA mais je t'indique la façon avec
laquelle je procede pour valider mes "userform" et transferer mes
données dans le tableau d'une feuille Pour toi cela ferait quelque
chose comme:

Private Sub cmdOk_Click()

'selectionne la feuille sur laquelle il faut "décharger" l'userform

Sheets("saisie").Select

'decharge la valeur de chaque Textbox (ou combo ou autre)dans les
cellules respectives de la ligne A1

Range("A1") = txtNom.Value
Range("B1") = txtPrenom.value

' etc....tu continue ainsi de suite....Puis tu quites l'userform

Unload.me

End Sub

Voili voila tous mes userform de saisie fonctionne de cette maniere
generale...
Avatar
JPMonnier
Salut sab,
Tu n'es pas obligé sélectionner la feuille ou tu veux écrire tes données
Sheets("saisie").Select est inutile
Avant d'écrire tes valeurs, tu fais

Set Sai = sheets("saisie") ' Attribution de ta feuille à une variable object
en l'occurence
'tu pourras l'utiliser dans toute ta proc au lieu d'utiliser
Sheets("saisie") tu écris Sai
ensuite tu écris
Sai.[A1]= txtNom.Value
Sai.[B1]= txtPrenom.value
etc ...
si en début de module tu as Option Explicit, tu devras déclarer au début
Dim Sai As Object
Cordialement

"sab" a écrit dans le message de
news:
mrc a écrit :
Bonjour,

je débute dans le langage VBA et pour cela je ne fais qu'appliquer ce que
je peux trouver sur la "toile" pour commencer.
j'ai donc commencé par une "userform" dans lequel j'ai mis deux contrôles
(insérer le nom et le prénom) et à côté deux boutons de commande.
sur celui qui concerne la validation il est fait pour que quand on entre
des infos celles ci soient transférées dans une autre feuille.
J'ai beau recopier exactement il me trouve une erreur et pointe le
"point" avant Value.
Voici ce que j'ai écrit, merci à celui ou celle qui pourra me débloquer
et m'expliquer où est mon erreur:
Private Sub cmdOK_Click()
Sheets("Donnees").Range("A1").Value = Me.txtNom.Text



Bonjour,

Je ne suis pas un specialiste en VBA mais je t'indique la façon avec
laquelle je procede pour valider mes "userform" et transferer mes données
dans le tableau d'une feuille Pour toi cela ferait quelque chose comme:

Private Sub cmdOk_Click()

'selectionne la feuille sur laquelle il faut "décharger" l'userform

Sheets("saisie").Select

'decharge la valeur de chaque Textbox (ou combo ou autre)dans les cellules
respectives de la ligne A1

Range("A1") = txtNom.Value
Range("B1") = txtPrenom.value

' etc....tu continue ainsi de suite....Puis tu quites l'userform

Unload.me

End Sub

Voili voila tous mes userform de saisie fonctionne de cette maniere
generale...




Avatar
Papyjac
Bonjour mrc,

Si tu veux débuter dans le VBA, ne commence pas les USERFORM,

Je fais du VBA depuis 15 ans, et je n'ai eu que très peu de problème
relevant du userform... à moins que tu ne souhaites devenir un spécialiste du
userform

NOn, commence pas l'enregistreur de macro,

--
Papyjac


"mrc" a écrit :

Bonjour,

je débute dans le langage VBA et pour cela je ne fais qu'appliquer ce que je
peux trouver sur la "toile" pour commencer.
j'ai donc commencé par une "userform" dans lequel j'ai mis deux contrôles
(insérer le nom et le prénom) et à côté deux boutons de commande.
sur celui qui concerne la validation il est fait pour que quand on entre des
infos celles ci soient transférées dans une autre feuille.
J'ai beau recopier exactement il me trouve une erreur et pointe le "point"
avant Value.
Voici ce que j'ai écrit, merci à celui ou celle qui pourra me débloquer et
m'expliquer où est mon erreur:
Private Sub cmdOK_Click()
Sheets("Donnees").Range("A1").Value = Me.txtNom.Text





Avatar
JPMonnier
Salut Papyjac
Je suis de ton avis, et dans le même cas que toi, j'ai commencé sur Quatro
pro en 85 et attaqué le Vba (en français à l'époque)
en 90
!
Il faut vraiment commencer par l'enregistreur de macro !
Le forum m'apporte énormément et si je l'avais eu à mon époque, cela aurait
été le bonheur !
Bonne soirée
--
Cordialement


"Papyjac" a écrit dans le message de
news:
Bonjour mrc,

Si tu veux débuter dans le VBA, ne commence pas les USERFORM,

Je fais du VBA depuis 15 ans, et je n'ai eu que très peu de problème
relevant du userform... à moins que tu ne souhaites devenir un spécialiste
du
userform

NOn, commence pas l'enregistreur de macro,

--
Papyjac


"mrc" a écrit :

Bonjour,

je débute dans le langage VBA et pour cela je ne fais qu'appliquer ce que
je
peux trouver sur la "toile" pour commencer.
j'ai donc commencé par une "userform" dans lequel j'ai mis deux contrôles
(insérer le nom et le prénom) et à côté deux boutons de commande.
sur celui qui concerne la validation il est fait pour que quand on entre
des
infos celles ci soient transférées dans une autre feuille.
J'ai beau recopier exactement il me trouve une erreur et pointe le
"point"
avant Value.
Voici ce que j'ai écrit, merci à celui ou celle qui pourra me débloquer
et
m'expliquer où est mon erreur:
Private Sub cmdOK_Click()
Sheets("Donnees").Range("A1").Value = Me.txtNom.Text







Avatar
LSteph
Bonjour,

Au départ on écrivait dans des feuilles macro, on montait des définition
de grilles, il fallait aller dans windows pour monter d'abord des boites
avec des boutons et les utiliser ensuite dans excel.
De même que depuis l'editeur de boite de dialogue vinrent les feuilles
appropriées, ceux qui pratiquent excel depuis longtemps n'avaient pas
VBA et l'enregistreur.

S'il s'agissait seulement de ""découvrir VBA"",

je n'irais pas jusqu'à dire que c'est très bien de commencer par le
userform, mais c'est certainement une bonne voie pour comprendre le
fonctionnement et comment règler soit physiquement soit par le code les
propriétés de ces objets. Au moins cela montre que tu as commencé par
aller dans VBE et essayer de manipuler ce qui s'y trouve.
Donc commencer par regarder les concepts de VBA dans l'aide et/ou
sur internet, si tu veux dépenser, un bouquin. Objets propriétés
méthodes, définition de variables et leur type (domaine regrettablement
occulté amha par certains), également la portée,notions Public ou Private...
Les possibilités du langage boucles for to, for to next , Do loop
while, et autres structures ... With , If ...

En revanche, si tu veux faire du ""VBA pour EXCEL"",

il me semble qu'il vaut mieux commencer par acquérir une connaissance
assez complète de celui-ci (EXCEL).
Connaître déjà les fonctionnalités à ta disposition pour attaquer
leur manipulation et celle de l'application et de ses propriétés, de la
même façon que l'on peut manipuler des textbox et des boutons dans un
Userform.

A partir de là ""l'enregistreur"" sera un outil te permettant de voir,
coté utilisateur comment VBA interprète les actions dans excel pour les
écrire dans le code, et tu t'empresseras d'aller corriger les nombreuses
inutilités qui en découlent à commencer par les .select
Coté programmeur on peut écrire directement, contrairement au coté
utilisateur , où il faut bien qu'il y ait un contexte et des actions
pour le déterminer.
Ainsi, le GROS PLUS de l'enregistreur, c'est que si on ne sait pas
quel instruction ou objet invoquer , il va l'écrire directement.

Et puis il y a un très bon forum pour excel et son VBA ... ;-)
ainsi que d' "excel"lents sites ex: http://www.excelabo.net

Cordialement.

--
lSteph

mrc a écrit :
Bonjour,

je débute dans le langage VBA et pour cela je ne fais qu'appliquer ce que je
peux trouver sur la "toile" pour commencer.
j'ai donc commencé par une "userform" dans lequel j'ai mis deux contrôles
(insérer le nom et le prénom) et à côté deux boutons de commande.
sur celui qui concerne la validation il est fait pour que quand on entre des
infos celles ci soient transférées dans une autre feuille.
J'ai beau recopier exactement il me trouve une erreur et pointe le "point"
avant Value.
Voici ce que j'ai écrit, merci à celui ou celle qui pourra me débloquer et
m'expliquer où est mon erreur:
Private Sub cmdOK_Click()
Sheets("Donnees").Range("A1").Value = Me.txtNom.Text