Autoriser le 0 en premier chiffre dans une textbox
Dernière réponse : dans Programmation
Bonjour à tous,
Je voudrais savoir comment on peut autoriser le 0 s'il est en premier dans une textbox.
Je veux rentrer un numéro de téléphone coupé en 5 textbox et dans la première quand je mets 06, il ne garde que 6.
Merci.
Je voudrais savoir comment on peut autoriser le 0 s'il est en premier dans une textbox.
Je veux rentrer un numéro de téléphone coupé en 5 textbox et dans la première quand je mets 06, il ne garde que 6.
Merci.
Autres pages sur : autoriser premier chiffre textbox
Lassé par la pub ? Créez un compte
Meilleure solution
Bon, je te propose d'accélérer un peu les choses.
Mais il va falloir suivre.
j'ai récupéré un bon vieux VB6 sur mon poste de travail, sans rien dire au patron (qui croit que la machine qu'il me confie est inviolable
).
Il est en anglais alors je te donnerais certains trucs dans la langue de Shakespeare.
C'est reparti, comme en 14 !!
(1994 - à l'époque, cétait VB 3.0
)
Ouvre un nouveau projet dans VB.
Ouvre le menu Tools/Options. Coche Require Variable Declaration. (Option Explicit)
Ouvre le menu Project/Properties. Choisis un nom cool à ton projet : NosInvites. C'est bat, non !?
Ouvre Project/Add Modules. Un nouveau module s'ouvre.
Définit de variable et contantes globales :
Dans la forme Form1, quatre boutons : Consulter, Ajouter, Modifier, Supprimer et une liste List1.
C'est tout, sauf que tu peux ajouter un bouton Quitter.
En voici le code :
Maintenant la forme Form2.
Il faut mettre autant de champs Edit que de colonnes dans Excel.
Et les boutons Valider et Annuler.
Le bouton Annuler ferme la fenêtre sans faire la moindre action.
Le bouton Valider enregistre notre action puis ferme.
Dans le cas de la consultation, on ne peut valide rien, donc on n'annule rien. C'est pourquoi on change le nom du bouton Annuler et on cache le bouton Valider.
T'as de quoi bosser ce soir.
J'y ai mis un peu de temps, alors tu ne me poses que des questions pertinentes. Pour les autres questions, tu réfléchis bien avant
Mais il va falloir suivre.
j'ai récupéré un bon vieux VB6 sur mon poste de travail, sans rien dire au patron (qui croit que la machine qu'il me confie est inviolable
).Il est en anglais alors je te donnerais certains trucs dans la langue de Shakespeare.
C'est reparti, comme en 14 !!
(1994 - à l'époque, cétait VB 3.0
)Ouvre un nouveau projet dans VB.
Ouvre le menu Tools/Options. Coche Require Variable Declaration. (Option Explicit)
Ouvre le menu Project/Properties. Choisis un nom cool à ton projet : NosInvites. C'est bat, non !?
Ouvre Project/Add Modules. Un nouveau module s'ouvre.
Définit de variable et contantes globales :
Option Explicit
' // Cet objet sera vu par tous !
Global WB As Object
' // Déclaration de constantes
Global Const taView = 0
Global Const taAdd = 1
Global Const taUpd = 2
Global Const taDel = 3
Dans la forme Form1, quatre boutons : Consulter, Ajouter, Modifier, Supprimer et une liste List1.
C'est tout, sauf que tu peux ajouter un bouton Quitter.
En voici le code :
Option Explicit
Dim XL As Object
Private Sub btnAdd_Click()
Load Form2
Form2.SetData taAdd, -1
Form2.Show vbModal
Reload
End Sub
Private Sub btnDel_Click()
If List1.ListIndex = -1 Then Exit Sub
Load Form2
Form2.SetData taDel, List1.ItemData(List1.ListIndex)
Form2.Show vbModal
Reload
End Sub
Private Sub btnQuit_Click()
Unload Me
End Sub
Private Sub btnUpd_Click()
If List1.ListIndex = -1 Then Exit Sub
Load Form2
Form2.SetData taUpd, List1.ItemData(List1.ListIndex)
Form2.Show vbModal
Reload
End Sub
Private Sub btnView_Click()
If List1.ListIndex = -1 Then Exit Sub
Load Form2
Form2.SetData taView, List1.ItemData(List1.ListIndex)
Form2.Show vbModal
End Sub
Private Sub Reload()
Dim ws_invite As Object '// Worksheet
Dim cl_invite As Object '// Range
Set ws_invite = WB.Worksheets("liste_des_invités")
List1.Clear
' // La zone des invités
' // ------vvvvvvvv-----
For Each cl_invite In ws_invite.Range("A1:A10")
If cl_invite.Value <> "" Then
List1.AddItem cl_invite.Value & " " & cl_invite.Offset(0, 1).Value, _
List1.ListCount
' // La liste par défaut de VB est un peu différente
' // de la liste VBA/Excel. La gestion des colonnes est différente
' // Mais elle possède un champ Data qui contient un Long.
' // Idéale pour mettre notre numéro de ligne.
List1.ItemData(List1.ListCount - 1) = cl_invite.Row
End If
Next
End Sub
Private Sub Form_Load()
' // Une bonne fois pour toute !
Set XL = CreateObject("Excel.Application")
Set WB = XL.Workbooks.Open("X:\chemin\classeur.xls")
Reload
End Sub
Private Sub Form_Terminate()
WB.Close False
XL.Quit
End Sub
Maintenant la forme Form2.
Il faut mettre autant de champs Edit que de colonnes dans Excel.
Et les boutons Valider et Annuler.
Le bouton Annuler ferme la fenêtre sans faire la moindre action.
Le bouton Valider enregistre notre action puis ferme.
Dans le cas de la consultation, on ne peut valide rien, donc on n'annule rien. C'est pourquoi on change le nom du bouton Annuler et on cache le bouton Valider.
Option Explicit
Dim m_Ligne As Long
Dim m_TypeAction As Long
Public Sub SetData(TypeAction As Integer, Ligne As Long)
m_Ligne = Ligne
m_TypeAction = TypeAction
Select Case m_TypeAction
Case taView
btnValide.Visible = False
btnCancel.Caption = "Fermer"
btnCancel.Default = True
Me.Caption = "Consultation d'un invité"
Text1.Enabled = False
Text2.Enabled = False
' ...
LoadDataFromExcel
Case taAdd
Me.Caption = "Ajout d'un invité à la liste"
Case taUpd
Me.Caption = "Modification d'un invité de la liste"
LoadDataFromExcel
Case taDel
Me.Caption = "Radiation d'un invité"
Text1.Enabled = False
Text2.Enabled = False
' ...
LoadDataFromExcel
End Select
End Sub
Private Sub LoadDataFromExcel()
Dim ws_liste As Object
Set ws_liste = WB.Worksheets("liste_des_invités")
Text1.Text = ws_liste.Cells(m_Ligne, 1)
Text2.Text = ws_liste.Cells(m_Ligne, 2)
' ...
End Sub
Private Sub SaveDataToExcel()
Dim ws_liste As Object
Set ws_liste = WB.Worksheets("liste_des_invités")
ws_liste.Cells(m_Ligne, 1) = Text1.Text
ws_liste.Cells(m_Ligne, 2) = Text2.Text
' ...
WB.Save
End Sub
Private Sub btnCancel_Click()
Unload Me
End Sub
Private Sub btnValide_Click()
Dim ws_liste As Object
Set ws_liste = WB.Worksheets("liste_des_invités")
Select Case m_TypeAction
Case taAdd
If ws_liste.Cells(1, 1).Value = "" Then
m_Ligne = 1
Else
m_Ligne = ws_liste.Cells(1, 1).End(xlDown).Row + 1
End If
SaveDataToExcel
Case taUpd
SaveDataToExcel
Case taDel
ws_liste.Rows(m_Ligne).Delete
WB.Save
End Select
Unload Me
End Sub
T'as de quoi bosser ce soir.
J'y ai mis un peu de temps, alors tu ne me poses que des questions pertinentes. Pour les autres questions, tu réfléchis bien avant
Ok je viens de comprendre (je pense)
J'ai un fichier Excel 2003 qui contient du code VBA.
Sur une feuille j'ai un bouton qui m'ouvre un Userform sur lequel j'ai 5 textbox (max 2 caractères par textbox) pour enregistrer un numéro de téléphone.
Quand j'écris 06 par exemple, il me garde uniquement le 6.
J'aimerais donc savoir comment je peux faire pour qu'il me garde le 0 lorsqu'il est en premier.
Merci.
J'ai un fichier Excel 2003 qui contient du code VBA.
Sur une feuille j'ai un bouton qui m'ouvre un Userform sur lequel j'ai 5 textbox (max 2 caractères par textbox) pour enregistrer un numéro de téléphone.
Quand j'écris 06 par exemple, il me garde uniquement le 6.
J'aimerais donc savoir comment je peux faire pour qu'il me garde le 0 lorsqu'il est en premier.
Merci.
Et autre question concernant les textbox :
J'ai plusieurs textbox avec des AutoTab. Dans la première il y a plusieurs lignes (MultiLine) et la possibilité d'aller à la ligne avec la touche entrée (EnterKeyBehavior).
Quand j'écris dans cette textbox sans faire entrée et que je passe à la textbox suivante (par Tab ou à la souris), ça fonctionne très bien. Par contre, si dans la première je vais à la ligne avec Entrée, et que je passe à la textbox suivante (Tab ou souris), je ne peux pas écrire dedans et Excel plante. Je ne sais pas pourquoi.
Une idée?
Merci.
J'ai plusieurs textbox avec des AutoTab. Dans la première il y a plusieurs lignes (MultiLine) et la possibilité d'aller à la ligne avec la touche entrée (EnterKeyBehavior).
Quand j'écris dans cette textbox sans faire entrée et que je passe à la textbox suivante (par Tab ou à la souris), ça fonctionne très bien. Par contre, si dans la première je vais à la ligne avec Entrée, et que je passe à la textbox suivante (Tab ou souris), je ne peux pas écrire dedans et Excel plante. Je ne sais pas pourquoi.
Une idée?
Merci.
MaskTextBox, ça s'écrit comme ça : MaskedTextBox.
Tu vas voir, c'est plus facile à trouver avec la bonne orthographe![[:patch] [:patch]]()
Aucune idée
pour ton plantage, d'autant que tu ne donnes pas le message.
Qu'est-ce que c'est que cette histoire de passer de TextBox en TextBox dans Excel.
Tu devrais te mettre à VB, carrément. Il existe des versions non payantes, ceux sont les versions Express : http://msdn.microsoft.com/fr-fr/express/aa975050.aspx
Tu vas voir, c'est plus facile à trouver avec la bonne orthographe
![[:patch] [:patch]](http://m.bestofmedia.com/sfp/design/usr/fr/smilies/e5/c5/patch.gif)
Aucune idée
pour ton plantage, d'autant que tu ne donnes pas le message.Qu'est-ce que c'est que cette histoire de passer de TextBox en TextBox dans Excel.
Tu devrais te mettre à VB, carrément. Il existe des versions non payantes, ceux sont les versions Express : http://msdn.microsoft.com/fr-fr/express/aa975050.aspx
Bonjour,
J'avais trouvé des trucs avec MaskedTextBox, car Google est intelligent donc il savait ce que je voulais trouver, mais j'ai pas trouvé assez d'infos pour savoir comment l'utiliser.
Pour le plantage, je n'ai pas de message d'erreur. J'explique :
J'ai une textbox adresse dans laquelle je peux aller à la ligne pour mettre plus ou moins en forme :
12 rue de presence-pc.com
07183 FORUM
Et ensuite je passe dans les (
) textbox du numéro de téléphone (Avec Tab ou souris) :
[06] [56] [78] [96] [45]
Voila ce que j'appelle passer de textbox en textbox.
Sauf que dès lors que je tape Entrée dans la textbox adresse et que je passe dans une autre textbox :
- je ne peux pas écrire dedans
- Excel plante (je ne peux rien faire dedans, ni enregistrer, ni fermer...)
- Idem pour Visual Basic
Mais je n'ai pas de message d'erreur.
Pour me mettre à VB, est ce que je vais pouvoir récupérer ce que j'ai déjà fait dans Excel (car j'ai déjà bien galeré
)
Merci.
J'avais trouvé des trucs avec MaskedTextBox, car Google est intelligent donc il savait ce que je voulais trouver, mais j'ai pas trouvé assez d'infos pour savoir comment l'utiliser.
Pour le plantage, je n'ai pas de message d'erreur. J'explique :
J'ai une textbox adresse dans laquelle je peux aller à la ligne pour mettre plus ou moins en forme :
12 rue de presence-pc.com
07183 FORUM
Et ensuite je passe dans les (
) textbox du numéro de téléphone (Avec Tab ou souris) :[06] [56] [78] [96] [45]
Voila ce que j'appelle passer de textbox en textbox.
Sauf que dès lors que je tape Entrée dans la textbox adresse et que je passe dans une autre textbox :
- je ne peux pas écrire dedans
- Excel plante (je ne peux rien faire dedans, ni enregistrer, ni fermer...)
- Idem pour Visual Basic
Mais je n'ai pas de message d'erreur.
Pour me mettre à VB, est ce que je vais pouvoir récupérer ce que j'ai déjà fait dans Excel (car j'ai déjà bien galeré
)Merci.
Laisse tomber les MaskedTextBox.
A la place, formate ta cellule en "00 00 00 00 00", et lie (link
) un et un seul textbox à cette cellule.
Excel est un tableur. La saisie est censé se faire dans des cellules, pas dans des formulaires plus ou moins bien faits (c'est une critique, pas du dénigrement
)
Avec VB, tu feras des interfaces propres et tu pourras facilement interfacer Excel.
Tant que tu poseras des questions sur VB*, je te répondrais volontiers, mais je m'impose ce devoir de conseil que de proposer des solutions plus cohérentes.
A la place, formate ta cellule en "00 00 00 00 00", et lie (link
) un et un seul textbox à cette cellule.Excel est un tableur. La saisie est censé se faire dans des cellules, pas dans des formulaires plus ou moins bien faits (c'est une critique, pas du dénigrement
)Avec VB, tu feras des interfaces propres et tu pourras facilement interfacer Excel.
Tant que tu poseras des questions sur VB*, je te répondrais volontiers, mais je m'impose ce devoir de conseil que de proposer des solutions plus cohérentes.
Je viens de faire ce que tu m'as dis pour le numéro de téléphone, c'est à dire une seule textbox linked à une cellule formatée en "00 00 00 00 00", mais dans la textbox quand j'écris le numéro de tel, le premier 0 s'efface (il existe bien dans la cellule).
Il y a un moyen de le garder dans la textbox ?
Merci.
P.S : je viens de télécharger VB, mais je ne sais pas du tout comment commencer...
Il y a un moyen de le garder dans la textbox ?
Merci.
P.S : je viens de télécharger VB, mais je ne sais pas du tout comment commencer...
Je suis en train de me faire une liste récapitulative d'invités pour mon mariage (l'année prochaine).
Je dois donc :
- entrer les coordonnées de l'invité (userform 1 avec textbox et listbox)
- entrer ses invitations + acceptations (userform 2 avec checkbox + listbox)
- entrer son conjoint + enfants si il en a
- faire la liste récapitulative
- pouvoir modifier les coordonnées d'un invité + modifier ses acceptations (copier coller des userforms 1 et 2)
- comptabiliser le nombre total d'invités, les invités à l'église, au repas, au vin d'honneur...
Je reconnais que je ne pensais pas au début faire un truc si complexe, mais je prends goût à me creuser la tête.
Merci.
Je dois donc :
- entrer les coordonnées de l'invité (userform 1 avec textbox et listbox)
- entrer ses invitations + acceptations (userform 2 avec checkbox + listbox)
- entrer son conjoint + enfants si il en a
- faire la liste récapitulative
- pouvoir modifier les coordonnées d'un invité + modifier ses acceptations (copier coller des userforms 1 et 2)
- comptabiliser le nombre total d'invités, les invités à l'église, au repas, au vin d'honneur...
Je reconnais que je ne pensais pas au début faire un truc si complexe, mais je prends goût à me creuser la tête.
Merci.
Et tu as besoin de 5 textbox pour saisir le numéro de téléphone de tes invités
.
.
.
Si le but du jeu est de faire la liste de tes invités, alors t'as tout faux.
Si au contraire ce n'est qu'un prétexte pour apprendre à te servir d'Excel, c'est une très bonne chose.
Si c'est pour apprendre à programmer, attention jeune homme, on y prend vite goût. Et c'est ta jeune fiancé qui va se languir ...
Bon plus sérieusement. Excel n'est pas adapté à la conception d'interface de saisie. Au contraire, tout est prévu pour que cette saisie se fasse directement dans les cellules. Qu'importe, on peut quand même insister.
Sinon, pour gérer une liste un peu complexe, on peut utilise une petite base de données, genre Access. C'est un peu trop gros pour ce que tu te proposes de faire, mais tu peux y trouver l'intérêt d'apprendre à t'en servir. Dès qu'il y a plus de 65536 éléments dans une liste, on doit abandonner Excel de toutes façons. M'enfin, je ne pense pas que même au vin d'honneur il y aura autant de monde
Reste une autre solution, si tu aimes les zolis écrans de saisie : VB. Lui, il est fait pour ça. En plus, dans VB, on peut stocker les données dans une base Access par exemple, et les restituer dans une feuille Excel par exemple. Ce n'est vraiment pas difficile, surtout que tu as déjà taté de VBA.
Quelque soit ton choix, ce site est là pour t'aider. Mais n'en demande pas trop à Excel
La bise à ta fiancée
(Rhooooooo !)
.
.
.
Si le but du jeu est de faire la liste de tes invités, alors t'as tout faux.
Si au contraire ce n'est qu'un prétexte pour apprendre à te servir d'Excel, c'est une très bonne chose.
Si c'est pour apprendre à programmer, attention jeune homme, on y prend vite goût. Et c'est ta jeune fiancé qui va se languir ...
Bon plus sérieusement. Excel n'est pas adapté à la conception d'interface de saisie. Au contraire, tout est prévu pour que cette saisie se fasse directement dans les cellules. Qu'importe, on peut quand même insister.
Sinon, pour gérer une liste un peu complexe, on peut utilise une petite base de données, genre Access. C'est un peu trop gros pour ce que tu te proposes de faire, mais tu peux y trouver l'intérêt d'apprendre à t'en servir. Dès qu'il y a plus de 65536 éléments dans une liste, on doit abandonner Excel de toutes façons. M'enfin, je ne pense pas que même au vin d'honneur il y aura autant de monde
Reste une autre solution, si tu aimes les zolis écrans de saisie : VB. Lui, il est fait pour ça. En plus, dans VB, on peut stocker les données dans une base Access par exemple, et les restituer dans une feuille Excel par exemple. Ce n'est vraiment pas difficile, surtout que tu as déjà taté de VBA.
Quelque soit ton choix, ce site est là pour t'aider. Mais n'en demande pas trop à Excel
La bise à ta fiancée
(Rhooooooo !)
Le but du jeu est bien de faire la liste, de les comptabiliser, et de pouvoir les trier par critères (noms, âges...).
Quand j'aurai réussi à faire tout ça , chapeau !!!
Je rassure ma fiancée (comme si elle allait venir lire ça...), ce n'est pas un prétexte pour apprendre à coder. Je n'en ai pas vraiment l'utilité, à part ce que je fais en ce moment, et je ne prévois pas de me marier tous les ans. Et puis de toutes façons j'aurai déjà mon fichier :-)
Bien que je n'aie pas plus de 65536 invités, je vais donc tenter avec VB, mais je ne sais pas du tout comment commencer. De longues heures sur Google en perspective...
Est ce qu'il faut faire des Userform comme dans Excel ? Comment je crée la base de données ? Est ce que je dois faire un "Tableau" comme dans Excel ?
Tout plein de questions...
Et pas de VB au boulot... Dommage.
Merci pour l'aide passée, et l'aide à venir...
Quand j'aurai réussi à faire tout ça , chapeau !!!
Je rassure ma fiancée (comme si elle allait venir lire ça...), ce n'est pas un prétexte pour apprendre à coder. Je n'en ai pas vraiment l'utilité, à part ce que je fais en ce moment, et je ne prévois pas de me marier tous les ans. Et puis de toutes façons j'aurai déjà mon fichier :-)
Bien que je n'aie pas plus de 65536 invités, je vais donc tenter avec VB, mais je ne sais pas du tout comment commencer. De longues heures sur Google en perspective...
Est ce qu'il faut faire des Userform comme dans Excel ? Comment je crée la base de données ? Est ce que je dois faire un "Tableau" comme dans Excel ?
Tout plein de questions...
Et pas de VB au boulot... Dommage.
Merci pour l'aide passée, et l'aide à venir...
Je suis bien embêté avec toi ! Je ne sais plus trop quoi te dire.
M'enfin, pourquoi ce besoin de faire des userforms alambiqués ?
Saisis le nom, l'âge et le numéro de téléphone dans ta feuille, tout simplement
Une fois tes données dans ta feuille, Excel saura te les trier sans l'once d'une ligne de macro.
Cela dit, si ça t'amuse !
----------------------------------
Oui, en VB on fait des UserForms. On appelle ça des Forms, tout court. D'ailleurs quand tu ouvres un nouveau projet, une Form est déjà créée, c'est le fenêtre principale. Et pour stocker les données, on peut utiliser un fichier plat (fichier texte de données, genre CSV), une base de données .MDB, un classeur Excel (
) ...
M'enfin, pourquoi ce besoin de faire des userforms alambiqués ?
Saisis le nom, l'âge et le numéro de téléphone dans ta feuille, tout simplement
Une fois tes données dans ta feuille, Excel saura te les trier sans l'once d'une ligne de macro.
Cela dit, si ça t'amuse !
----------------------------------
Oui, en VB on fait des UserForms. On appelle ça des Forms, tout court. D'ailleurs quand tu ouvres un nouveau projet, une Form est déjà créée, c'est le fenêtre principale. Et pour stocker les données, on peut utiliser un fichier plat (fichier texte de données, genre CSV), une base de données .MDB, un classeur Excel (
) ...
Le truc, c'est que je veux que quelqu'un d'autre puisse remplir la liste, facilement, sans mettre n'importe quoi dans les cases, sans supprimer des données par erreur...
Donc le fait d'avoir des userforms, ça me permet de contrôler les données. Mais il y a surement d'autres moyens beaucoup mieux pour fair ça, sauf que je ne les connais pas.
Je l'avais dit : je débute...
Donc le fait d'avoir des userforms, ça me permet de contrôler les données. Mais il y a surement d'autres moyens beaucoup mieux pour fair ça, sauf que je ne les connais pas.
Je l'avais dit : je débute...
Ah, mais débuter en programmation, ça ne veut pas dire débuter en bureautique.
Tu pourrais savoir maîtriser les feuilles et les formules Excel sans bien connaître VBA.
Voilà ce que nous allons faire.
Tu vas créer un nouveau projet dans VB.
Avec quatre gros boutons :
Voir la liste
Ajouter dans la liste
Modifier dans la liste
Supprimer de la liste
Quitter
Tu remarqueras que ça fait cinq.
Ça y est ?
Tu pourrais savoir maîtriser les feuilles et les formules Excel sans bien connaître VBA.
Voilà ce que nous allons faire.
Tu vas créer un nouveau projet dans VB.
Avec quatre gros boutons :
Tu remarqueras que ça fait cinq.
Ça y est ?
Le code du bouton Quitter, c'est facile :
Le code pour voir la liste, le voilà :
Maintenant, crée-toi trois beaux écrans de saisie pour l'ajout, la modification et la suppression.
Unload Me
Le code pour voir la liste, le voilà :
Dim XL As Object
Dim WB As Object
Set XL = CreateObject("Application.Excel")
Set WB = XL.Workbooks.Open(<ton_fichier_excel>)
XL.Visible = True
Maintenant, crée-toi trois beaux écrans de saisie pour l'ajout, la modification et la suppression.
Merci pour ce début.
Histoire de ne pas partir n'importe où, les écrans de saisie dont tu parles sont bien des nouveaux Forms ?
J'ai donc créé les boutons et ajouter le code correspondant, mais j'ai des erreurs.
En double cliquant sur le bouton, le "titre" du code se met tout seul (Exemple bouton Supprimer) :
Sur le code pour voir la liste que tu m'as donné, j'ai les erreurs suivantes :
- Une instruction 'Class' doit se terminer par un 'End Class' correspondant
- 'End Sub' attendu
- Les instructions d'assignation 'Let' et 'Set' ne sont plus prises en charge
- Balise de fin manquante dans l'élément (sur (<ton_fichier_excel> ) ) Est ce que je dois mettre l'extension.xsls ?
- '<' ouvrant attendu pour une balise XML (après End Sub)
Est ce qu'il faut régler toutes ces erreurs pour "tester" le programme ?
Merci.
Histoire de ne pas partir n'importe où, les écrans de saisie dont tu parles sont bien des nouveaux Forms ?
J'ai donc créé les boutons et ajouter le code correspondant, mais j'ai des erreurs.
En double cliquant sur le bouton, le "titre" du code se met tout seul (Exemple bouton Supprimer) :
mais j'ai une erreur dessus : Instruction non valide dans un espace de nom (Idem pour tous les boutons).
Private Sub Supprimer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Sur le code pour voir la liste que tu m'as donné, j'ai les erreurs suivantes :
- Une instruction 'Class' doit se terminer par un 'End Class' correspondant
- 'End Sub' attendu
- Les instructions d'assignation 'Let' et 'Set' ne sont plus prises en charge
- Balise de fin manquante dans l'élément (sur (<ton_fichier_excel> ) ) Est ce que je dois mettre l'extension.xsls ?
- '<' ouvrant attendu pour une balise XML (après End Sub)
Est ce qu'il faut régler toutes ces erreurs pour "tester" le programme ?
Merci.
Arffff
Et merdum !
C'est plus du VB, c'est du VB .Net.
C'est foutu
(Sauf à se mettre aussi au .Net
)
Je le redis, je suis bien embêté avec toi.
Je ne sais plus quoi te proposer.
Tu en demandes trop à Excel et je ne vais pas t'apprendre TOUS les langages de programmation. D'un, je ne les connais pas tous (désolé de briser le mythe
), de deux, je ne suis pas sûr que ça t'emballe.
Et merdum !
C'est plus du VB, c'est du VB .Net.
C'est foutu
(Sauf à se mettre aussi au .Net
)Je le redis, je suis bien embêté avec toi.
Je ne sais plus quoi te proposer.
Tu en demandes trop à Excel et je ne vais pas t'apprendre TOUS les langages de programmation. D'un, je ne les connais pas tous (désolé de briser le mythe
), de deux, je ne suis pas sûr que ça t'emballe.
Bon... Et si j'essaie un VB plus ancien (je peux prendre lequel ?), ça pourrait le faire ?
Sinon, tant pis, je vais continuer à en demander trop à Excel
, au risque de me faire jeter des pierres !!!
Merci.
P.S : c'est pour ça alors que je suis tombé sur une aide hier : Pourquoi la précision ".NET" est-elle importante ?
Sinon, tant pis, je vais continuer à en demander trop à Excel
, au risque de me faire jeter des pierres !!!
Merci.
P.S : c'est pour ça alors que je suis tombé sur une aide hier : Pourquoi la précision ".NET" est-elle importante ?
Bonjour,
Me voila prêt aux commandes d'un VB 6.0 tout neuf.
J'ai donc créé comme tu m'avais dit mes 4 (5) boutons, les écrans de saisie pour la création, modification et suppression des invités, et ajouter le code sur le bouton pour ouvrir ces écrans.
Par contre il y a une erreur quand je mets le code que tu m'as donné pour voir la liste. Je l'ai modifié avec mes infos, mais je ne suis pas sûr de la syntaxe pour mon fichier excel :
Et après ...? je bloque
Un peu plus de détails. (Je suis parti voir Shrek sans m'étendre dans les explications
).
J'ai donc préparé les écrans pour entrer les données, mais je ne sais pas comment lier les différents champs à remplir avec des infos.
Ex : j'ai une combobox "Nom". Dans Excel a combobox se "remplit" avec des infos sur plusieurs cellules, et je pouvais lier la combobox avec une autre cellule. Là, je ne sais pas quoi en faire.
Idem pour les textbox.
Autre chose : dans VB 2010, il y a un calendrier dans lequel on peut choisir une date (ex pour une date de naissance). On peut faire ça dans VB 6.0 ?
Merci.
Me voila prêt aux commandes d'un VB 6.0 tout neuf.
J'ai donc créé comme tu m'avais dit mes 4 (5) boutons, les écrans de saisie pour la création, modification et suppression des invités, et ajouter le code sur le bouton pour ouvrir ces écrans.
Par contre il y a une erreur quand je mets le code que tu m'as donné pour voir la liste. Je l'ai modifié avec mes infos, mais je ne suis pas sûr de la syntaxe pour mon fichier excel :
Private Sub Voir_Click(Index As Integer) Dim XL As Object Dim WB As Object Choix.Hide Set XL = CreateObject("Excel.Application") Set WB = XL.Workbooks.Open(Liste_d_invités.xlsx) XL.Visible = True End Sub
Et après ...? je bloque
Un peu plus de détails. (Je suis parti voir Shrek sans m'étendre dans les explications
).J'ai donc préparé les écrans pour entrer les données, mais je ne sais pas comment lier les différents champs à remplir avec des infos.
Ex : j'ai une combobox "Nom". Dans Excel a combobox se "remplit" avec des infos sur plusieurs cellules, et je pouvais lier la combobox avec une autre cellule. Là, je ne sais pas quoi en faire.
Idem pour les textbox.
Autre chose : dans VB 2010, il y a un calendrier dans lequel on peut choisir une date (ex pour une date de naissance). On peut faire ça dans VB 6.0 ?
Merci.
Ligne 6, je pense que tu devrais soit utiliser une variable de type string, soit lui mettre une chaîne de caractères à la place du nom de fichier à ouvrir. ![[:patch] [:patch]]()
Bon, alors ça, c'est pour voir le fichier. C'est vu ?
Alors on va faire la même chose pour lire une seule valeur.
--------------------------
Comme tu attends d'être à la maison pour vérifier, j'avance un peu sans toi
Faut-il être con pour rouvrir à chaque fois le même fichier.
Et si au lieu de ça, on l'ouvrait une bonne fois pour toute ?
Faut juste que l'utilisateur ne ferme pas Excel
![[:patch] [:patch]](http://m.bestofmedia.com/sfp/design/usr/fr/smilies/e5/c5/patch.gif)
Bon, alors ça, c'est pour voir le fichier. C'est vu ?
Alors on va faire la même chose pour lire une seule valeur.
T'as tout compris ?
Dim XL As Object Dim WB As Object Set XL = CreateObject("Excel.Application") Set WB = XL.Workbooks.Open("liste.xlsx") Edit1.Text = WB.Worksheets("invité").Range("A1") WB.Close XL.Quit
--------------------------
Comme tu attends d'être à la maison pour vérifier, j'avance un peu sans toi
Faut-il être con pour rouvrir à chaque fois le même fichier.
Et si au lieu de ça, on l'ouvrait une bonne fois pour toute ?
Faut juste que l'utilisateur ne ferme pas Excel
>> l'erreur que j'ai
Euh....... Relis mes exemples![[:patch] [:patch]]()
>> Je ne trouve pas le contrôle Calendar
Cherche mieux www.google.fr/search?q=MSCAL.OCX
>> à quoi correspond le Edit1.text ?
A la propriété Text du contrôle Edit1. Si tu as renommé tes contrôles - ce qui est une bonne idée, tu dois adapter le code.
Euh....... Relis mes exemples
![[:patch] [:patch]](http://m.bestofmedia.com/sfp/design/usr/fr/smilies/e5/c5/patch.gif)
>> Je ne trouve pas le contrôle Calendar
Cherche mieux www.google.fr/search?q=MSCAL.OCX
>> à quoi correspond le Edit1.text ?
A la propriété Text du contrôle Edit1. Si tu as renommé tes contrôles - ce qui est une bonne idée, tu dois adapter le code.
Salut,
Où est-ce que je peux trouver tes exemples ? Je ne trouve que des trucs sur Excel...
Merci pour le calendar. Il fallait le trouver que c'était mscal.ocx
J'ai effectivement renommer mes contrôles, je vais donc pouvoir coder tout ça.
Merci.
Edit : Je viens de trouver ton exemple ( celui de Microsoft
) sur "Comment faire pour automatiser Excel à l'aide de VB". Je vais tester ça plus tard.
Où est-ce que je peux trouver tes exemples ? Je ne trouve que des trucs sur Excel...
Merci pour le calendar. Il fallait le trouver que c'était mscal.ocx
J'ai effectivement renommer mes contrôles, je vais donc pouvoir coder tout ça.
Merci.
Edit : Je viens de trouver ton exemple ( celui de Microsoft
) sur "Comment faire pour automatiser Excel à l'aide de VB". Je vais tester ça plus tard.
Option Explicit
Private Sub Command1_Click()
Dim oXL As Excel.Application
Dim oWB As Excel.Workbook
Dim oSheet As Excel.Worksheet
Dim oRng As Excel.Range
'On Error GoTo Err_Handler
' Start Excel and get Application object.
Set oXL = CreateObject("Excel.Application")
oXL.Visible = True
Quand je disais "Mes exemples", ce sont ceux que je te donnais dans ce topic-ci. J'avais écrit CreateObject("Application.Excel" ) au lieu de CreateObject("Excel.Application" )
Comme j'ai tout édité pour remettre les choses d'équerre, je te proposais de tout relire.
Comme par ailleurs t'es un garçon débrouillard, ... ben t'as trouvé tout seul.
Comme j'ai tout édité pour remettre les choses d'équerre, je te proposais de tout relire.
Comme par ailleurs t'es un garçon débrouillard, ... ben t'as trouvé tout seul.
OK pour l'exemple. Je n'avais pas vu ton erreur en fait...
Autres questions :
- Est ce qu'on peut remplir les cellules du fichier Excel sans l'ouvrir ?
- Est ce qu'on doit enregistrer le fichier Excel avant de le fermer ? Avec un truc du style
- Est ce que je dois mettre le code pour lire les valeurs, sur un seul bouton (exemple : "valider" sur le form où l'utilisateur remplit les données) :
ou une ligne par textbox / combobox ?
- pour remplir les combobox, vaut il mieux utiliser des additem ou une liste de mots dans excel ? sachant que je voudrais que l'utilisateur puisse ajouter un nom à la combobox avec un bouton ?
Je m'explique. L'utilisateur choisit un nom de famille dans une combobox. Si le nom n'y est pas, il clique sur "Ajouter un nom", qui l'ajoutera dans la combobox. Comme ça il l'aura pour les invités suivants..
Merci (pour avoir lu tout ça et pour les futures réponses
)
Autres questions :
- Est ce qu'on peut remplir les cellules du fichier Excel sans l'ouvrir ?
- Est ce qu'on doit enregistrer le fichier Excel avant de le fermer ? Avec un truc du style
XL.Save
- Est ce que je dois mettre le code pour lire les valeurs, sur un seul bouton (exemple : "valider" sur le form où l'utilisateur remplit les données) :
Private Sub Valider_Click()
Dim XL As Object
Dim WB As Object
Set XL = CreateObject("Excel.Application")
Set WB = XL.Workbooks.Open("C:\Users\Aurélien\Documents\mariage_carbonac_2011\Gestion\Liste.xlsx")
Prénom.Text = WB.Worksheets("invité").Range("B2")
Adresse.Text = WB.Worksheets("invité").Range("K2")
XL.Visible = True
WB.Close
XL.Quit
End Sub
ou une ligne par textbox / combobox ?
- pour remplir les combobox, vaut il mieux utiliser des additem ou une liste de mots dans excel ? sachant que je voudrais que l'utilisateur puisse ajouter un nom à la combobox avec un bouton ?
Je m'explique. L'utilisateur choisit un nom de famille dans une combobox. Si le nom n'y est pas, il clique sur "Ajouter un nom", qui l'ajoutera dans la combobox. Comme ça il l'aura pour les invités suivants..
Merci (pour avoir lu tout ça et pour les futures réponses
)
BEBER1212 a dit :
OK pour l'exemple. Je n'avais pas vu ton erreur en fait...
Autres questions :
- Est ce qu'on peut remplir les cellules du fichier Excel sans l'ouvrir ?
M'enfin ! Bien sûr que oui.
- Est ce qu'on doit enregistrer le fichier Excel avant de le fermer ?
M'enfin ! Bien sûr que oui.
Avec un truc du style
M'enfin ! Bien sûr que non. Ce n'est pas Excel que tu enregistres, mais le classeur.
XL.Save
- Est ce que je dois mettre le code pour lire les valeurs, sur un seul bouton (exemple : "valider" sur le form où l'utilisateur remplit les données) :
Je crois que tu peux te passer de la ligne 8.
Private Sub Valider_Click()
Dim XL As Object
Dim WB As Object
Set XL = CreateObject("Excel.Application")
Set WB = XL.Workbooks.Open("C:\Users\Aurélien\Documents\mariage_carbonac_2011\Gestion\Liste.xlsx")
Prénom.Text = WB.Worksheets("invité").Range("B2")
Adresse.Text = WB.Worksheets("invité").Range("K2")
XL.Visible = True
WB.Close
XL.Quit
End Sub
Eh, on avait pas dit qu'on ouvrait le classeur une bonne fois pour toute ?
ou une ligne par textbox / combobox ?
Pas compris
- pour remplir les combobox, vaut il mieux utiliser des additem ou une liste de mots dans excel ? sachant que je voudrais que l'utilisateur puisse ajouter un nom à la combobox avec un bouton ?
Au choix. Mais tu peux faire les deux.
Je m'explique. L'utilisateur choisit un nom de famille dans une combobox. Si le nom n'y est pas, il clique sur "Ajouter un nom", qui l'ajoutera dans la combobox. Comme ça il l'aura pour les invités suivants..
Merci (pour avoir lu tout ça et pour les futures réponses
)
Je n'arrive pas à "appeler" mon fichier excel, pour ne pas copier son emplacement a chaque fois. J'ai testé un truc mais ça ne fonctionne pas (Subscript out of range) :
Je ne comprends pas ce qui bug...
Quand on remplit les cellules du fichier excel avec les différentes textbox, est ce qu'on doit enregistrer le fichier (même s'il n'est pas ouvert) ?
Merci.
Set WB = XL.Workbooks("C:\Users\Aurélien\Documents\mariage_carbonac_2011\Gestion\Liste.xlsx")
Je ne comprends pas ce qui bug...
Quand on remplit les cellules du fichier excel avec les différentes textbox, est ce qu'on doit enregistrer le fichier (même s'il n'est pas ouvert) ?
Merci.
Qu'est-ce que tu appelles "ouvert" ? Tu veux dire visible à l'écran ?
Ceci ouvre l'application Excel. Sa fenêtre n'est pas forcément visible. Mais si tu vas dans le gestionnaire des tâches, tu y verras une ligne Excel.
Set XL = CreateObject("Excel.Application" )
Ceci ouvre le classeur. Si Excel n'est pas visible, lui non plus !
Set WB = XL.Workbooks.Open("toto")
Voila le code que j'ai, mais il y a toujours l'erreur "Subscript out of range" sur la ligne 5 :
Private Sub Valider_Click()
Dim XL As Object
Dim WB As Object
Set XL = CreateObject("Excel.Application")
Set WB = XL.Workbooks("C:\Users\Aurélien\Documents\mariage_carbonac_2011\Gestion\Liste.xlsx")
WB.Worksheets("Invité").Range("B2") = Prénom.Text
End Sub
Bonjour Zeb, et les autres,
Encore une fois, MERCI !!!
J'ai donc fait tout ce que tu m'as donné, en adaptant ça à mon fichier, mes noms de textbox, boutons et autres...
Pour info, mon form1 :
![]()
Mon form2 (Option de visualisation) :
![]()
J'ai bien essayé de me débrouiller avec ça, mais j'ai encore quelques petits problèmes.
J'ai un souci sur le bouton "Valider" de mon Form2, lorsque je souhaite ajouter un invité :
Variable not defined sur xlDown de :
Je ne comprends pas pourquoi l'erreur concerne une variable sur xlDown alors que c'est une expression "connue" dans VB, non ?
Du coup je n'arrive pas à tester si l'ajout d'un invité dans Excel fonctionne. Peux-tu me filer un coup de main là dessus s'il te plaît ?
Grâce à tout ce que tu m'as donné, je découvre la fonction Case, pour modifier le Form. Très pratique, moi qui avait fait dans mon programme précédent des copier/coller des textbox.
Après, je ne comprends pas tout, mais le fait que ça bloque sur "Valider" me gêne pour tout comprendre (Mes faibles compétences en programmation m'obligent à déchiffre tout ça pas à pas
).
Merci.
Encore une fois, MERCI !!!
J'ai donc fait tout ce que tu m'as donné, en adaptant ça à mon fichier, mes noms de textbox, boutons et autres...
Pour info, mon form1 :

Mon form2 (Option de visualisation) :

J'ai bien essayé de me débrouiller avec ça, mais j'ai encore quelques petits problèmes.
J'ai un souci sur le bouton "Valider" de mon Form2, lorsque je souhaite ajouter un invité :
Variable not defined sur xlDown de :
Case taAdd
If ws_liste.Cells(1, 1).Value = "" Then
m_Ligne = 1
Else
m_Ligne = ws_liste.Cells(1, 1).End(xlDown).Row + 1
End If
SaveDataToExcel
Case taUpd
SaveDataToExcel
Case taDel
ws_liste.Rows(m_Ligne).Delete
WB.Save
Je ne comprends pas pourquoi l'erreur concerne une variable sur xlDown alors que c'est une expression "connue" dans VB, non ?
Du coup je n'arrive pas à tester si l'ajout d'un invité dans Excel fonctionne. Peux-tu me filer un coup de main là dessus s'il te plaît ?
Grâce à tout ce que tu m'as donné, je découvre la fonction Case, pour modifier le Form. Très pratique, moi qui avait fait dans mon programme précédent des copier/coller des textbox.
Après, je ne comprends pas tout, mais le fait que ça bloque sur "Valider" me gêne pour tout comprendre (Mes faibles compétences en programmation m'obligent à déchiffre tout ça pas à pas
).Merci.
Et non, xlDown est connu de ... XL (excel).
Deux solutions.
Soit tu ajoutes Excel aux références de ton projet, mais dans ce cas seule la version d'Excel de ton poste pourra être utilisée.
Soit tu considères que ce n'est qu'une constante qu'il te suffit de déclarer. Pour connaître sa valeur, utilise VBA/Excel :
Deux solutions.
Soit tu ajoutes Excel aux références de ton projet, mais dans ce cas seule la version d'Excel de ton poste pourra être utilisée.
Soit tu considères que ce n'est qu'une constante qu'il te suffit de déclarer. Pour connaître sa valeur, utilise VBA/Excel :
MsgBox xlDown
Pour ta constante : +1
Je crois que tu progresses plus vite que tu ne le crois toi-même
Pour tes vivas : j'applaudirai les espagnols quand leurs basques, leurs catalans et tous leurs gaillards sauront jouer au ballon ovale, comme leurs compatriotes respectifs savent si bien le faire de l'autre côté des Pyrénées.
Je crois que tu progresses plus vite que tu ne le crois toi-même
Pour tes vivas : j'applaudirai les espagnols quand leurs basques, leurs catalans et tous leurs gaillards sauront jouer au ballon ovale, comme leurs compatriotes respectifs savent si bien le faire de l'autre côté des Pyrénées.
Bon, et bien non. J'ai essayé deux méthodes (quasi similaires), mais ça ne fonctionne pas :
et
Je ne vois pas ce qui cloche. Ma combobox "Nom" reste avec le text "Combobox1"...
Private Sub Nom_Change()
Dim c As Range
Nom.Clear
For Each c In WB.Worksheets("Noms").Range("A1:A10")
If c.Value = "" Then Exit For
Nom.AddItem c.Value
Next
End Sub
et
Private Sub Nom_Change()
For Each cell In WB.WorkSheets("Noms").Range("A1:A50")
Nom.AddItem cell.Value
Next
End Sub
Je ne vois pas ce qui cloche. Ma combobox "Nom" reste avec le text "Combobox1"...
Lassé par la pub ? Créez un compte
![[:keysersoze:30] [:keysersoze:30]](http://m.bestofmedia.com/sfp/design/usr/fr/smilies/da/6c/keysersoze:30.gif)