[VB6 -> VBA]Cellule excel vers Userform

Résolu
gislain99 - 20 mai 2013 à 13:40
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 21 mai 2013 à 16:56
Bonjour,

J'ai un Userform nomé "Userform3" avec une multipage. Sur une des pages nomé "Containers" j'ai plusieur textbox
listbox bouton qui me permete de renseigner une feuille excel nomé "bases containers" jusque la pas de probleme mais j'ai un bouton pour réaliser des modifications quand je clique dessus j'ouvre un userform nomé "Userform5" qui me demande de saisir l'immatriculation à modifier puis je valide et la je voudrais que toutes les info disponible sue cette immatriculation réaparesse dans les textbox listbox de ma page nomé "container".
Une petite precision mon immatriculation qui ce trouve en colonne "A" à etait rentré a l'aide de 3 textbox et un label ((Format des saisies)1er textbox AAAA ; 2eme textbox 123456 ; label - ; 3eme Textbox 3).

Ci joint mon code

Comme vous pouvez le voir j'ai fais plusieur essais mais pas de bon resultat.

'Modification container
 Private Sub CommandButton1_Click()
 Dim cel As Range, lig&, i&
 Dim Resultat As Range
 If TextBox1 + TextBox2 + Label2 + TextBox3 <> "" Then
 Set cel = Feuil11.Range("A2:A" & Feuil11.Range("A" & Rows.Count).End(xlUp).Row).Find(TextBox1 + TextBox2 + Label2 + TextBox3, , , xlWhole)
 If Not cel Is Nothing Then lig = cel.Row Else MsgBox "Aucune correspondance trouvée", , "Pas de correspondance": Exit Sub
 'Resultat.TextBox4 = Feuil11.Cells(lig, 1)
 'Resultat.TextBox5 = Feuil11.Cells(lig, 1)
 'Resultat.TextBox6 = Feuil11.Cells(lig, 1)
 'Resultat.TextBox7 = Feuil11.Cells(lig, 2)
 'Resultat.TextBox8 = Feuil11.Cells(lig, 2)
 'Uerform3.MultiPage1.Pages("page1").ComboBox1.Value = Feuil11.Cells(lig, 3)
 'Me.ComboBox2.Value = Feuil11.Cells(lig, 4)
 Resultat.TextBox18 = Feuil11.Cells(lig, 5)
 Resultat.TextBox146 = Feuil11.Cells(lig, 6)
 Resultat.ComboBox3 = Feuil11.Cells(lig, 7)
 Resultat.TextBox10 = Feuil11.Cells(lig, 8)
 Resultat.ComboBox5 = Feuil11.Cells(lig, 9)
 Resultat.ComboBox6 = Feuil11.Cells(lig, 10)
 Resultat.ComboBox7 = Feuil11.Cells(lig, 11)
 Resultat.ComboBox8 = Feuil11.Cells(lig, 12)
 Resultat.TextBox20 = Feuil11.Cells(lig, 13)
 Resultat.TextBox61 = Feuil11.Cells(lig, 14)
 Resultat.Show
 End If
 End Sub

15 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
21 mai 2013 à 16:56
Hé bé ! Ainsi, donc, Resultat était finalement et simplement un UserForm et avait un autre nom !

ta seconde question est à traiter dans une autre discussion (une question technique par discussion).
Ouvre-la donc sans même parler de cellule, mais bel et bien du traitement d'une chaîne de caractères.

idem pour ta troisième question en isolant la difficulté (sans donc reprendre ce qui la précède).

Merci de te conformer à cette règle
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
20 mai 2013 à 14:55
Bonjour,
Où et comment est initialisé la plage Resultat déclarée par :
Dim Resultat As Range



________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
Excuse moi cette ligne est suprimé j'avais essayer d'une autre maniere.
excusé moi pour l'erreur
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
20 mai 2013 à 18:18
Cela ne me dit alors :
- ni ce qu'est la variable Resultat
- ni où et comment cette variable objet a été déclarée
- ni où est comment un objet lui a été attribué

Que veux-tu que je te réponde, sur ces "non-bases" ? Rien !


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0

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

Posez votre question
voici mon code a l'heure actuelle quand je lance l'execution il me donne variable non définit c'est la que je ne sait pas comment faire.

'Modification container
Private Sub CommandButton1_Click()
Dim cel As Range, lig&, i&
If TextBox1 + TextBox2 + Label2 + TextBox3 <> "" Then
Set cel = Feuil11.Range("A2:A" & Feuil11.Range("A" & Rows.Count).End(xlUp).Row).Find(TextBox1 + TextBox2 + Label2 + TextBox3, , , xlWhole)
If Not cel Is Nothing Then lig = cel.Row Else MsgBox "Aucune correspondance trouvée", , "Pas de correspondance": Exit Sub
'Resultat.TextBox4 = Feuil11.Cells(lig, 1)
'Resultat.TextBox5 = Feuil11.Cells(lig, 1)
'Resultat.TextBox6 = Feuil11.Cells(lig, 1)
'Resultat.TextBox7 = Feuil11.Cells(lig, 2)
'Resultat.TextBox8 = Feuil11.Cells(lig, 2)
'Uerform3.MultiPage1.Pages("page1").ComboBox1.Value = Feuil11.Cells(lig, 3)
'Me.ComboBox2.Value = Feuil11.Cells(lig, 4)
Resultat.TextBox18 = Feuil11.Cells(lig, 5)
Resultat.TextBox146 = Feuil11.Cells(lig, 6)
Resultat.ComboBox3 = Feuil11.Cells(lig, 7)
Resultat.TextBox10 = Feuil11.Cells(lig, 8)
Resultat.ComboBox5 = Feuil11.Cells(lig, 9)
Resultat.ComboBox6 = Feuil11.Cells(lig, 10)
Resultat.ComboBox7 = Feuil11.Cells(lig, 11)
Resultat.ComboBox8 = Feuil11.Cells(lig, 12)
Resultat.TextBox20 = Feuil11.Cells(lig, 13)
Resultat.TextBox61 = Feuil11.Cells(lig, 14)
Resultat.Show
End If
End Sub
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
20 mai 2013 à 18:43
Bon....
Relis-moi. Re-relis-moi. Re-re-re-lis-moi.
Ta réponse montre de manière très nette que tu veux brûler des étapes, sans même avoir pris le départ.
Désolé, mais ... voilà !


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
je t'envairais bien mon fichier mais je ne sais pas comment faire je debute en VBA
0
ok merci de ton aide
ci tu lit le texte que j'ais donné avec mon programme j'ais expliqué ce que je voudrais réaliser je n'ais pas definit la variable car je ne sais pas le faire
sur la base de mon descriptif ne pe ton pas m'aiguillé
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
20 mai 2013 à 22:08
Désolé, ami, vraiment désolé.
Bonne chance.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
Utilisateur anonyme
21 mai 2013 à 02:48
Bonjour,
Tout ça m'a tout à fait l'air d'être du CCSC...

Alors Le "copier/Coller sans comprendre", consiste à "ramasser" des bouts de code "ici et la" et espérer que ça fonctionne...

Que comprends-tu de cette ligne? :
If Not cel Is Nothing Then lig = cel.Row Else MsgBox "Aucune correspondance trouvée", , "Pas de correspondance": Exit Sub


De plus, et comme a remarqué ucfoutu (que je salue au passage), où est la déclaration de ton "Resultat" ???
Tu vois? c'est comme les douanes, il faut le déclarer quelque-part...

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
21 mai 2013 à 07:50
Bonjour, aciçve,
Surtout : Qu'EST donc Resultat ? (Une feuille de calcul ? Un UserForm ?, autre chose ... et QUOI ? ... le demandeur l'a même déclaré comme plage dans son premier bout de code présenté ... !)
Nul ne le sait !
Même pas le demandeur, apparemment !


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
21 mai 2013 à 08:06
A gislain99
Je sais que tu es venu ici après avoir attendu en vain 4 jours une réponse ailleurs.
Les raisons de l'impossibilité de t'aider sont à rechercher dans tes imprécisions quant aux tenants eux-mêmes de ton application. A un tel point que tu ne sembles pas les connaître non plus !
Je vois dans ces conditions très mal comment te venir en aide.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
21 mai 2013 à 11:03
Pour t'aider à réfléchir et analyser ton appli :

1)
une expression telle que :
Resultat.TextBox18 = Feuil11.Cells(lig, 5)

ne peut faire référence qu'à un contrôle nommé TextBox18 et contenu dans un objet container nommé Resultat. (car je veux croire que tu n'as pas créé une structure Resultat dont l'un des membres aurait pour nom TextBox18. Cela m'étonnerait ...)
ce container ne peut donc qu'être :
- soit une feuille de calcul nommée Resultat
- soit un userform nommé Resultat

2) La méthode Show
- peut s'appliquer à un userform
- peut s'appliquer à une plage
- ne peut s'appliquer à une feuille de calcul

Et par simple déduction (entre 1) et 2)) === >> Resultat ne peut qu'être un UserForm existant et ainsi nommé .

Et non seulement tu ne nous parles pas de cette existence, mais :
1) tu sembles l'ignorer totalement
2) ton premier code montré tend à le déclarer en plage, sans même définir celle "ainsi" concernée !
Ca fait beaucoup, ne crois-tu pas ?

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
Bonjour,

Je comprend tres vite mais il faut m'expliqué longtemp.lol
Tes explications mon baucoup aidé j'ai pu modifier mon code et il fonctionne bien.

question suplaimentaire;

[b]1) dans la cellule A de ma feuille 11 j'ai un code du type AAAA666666-1 il me faut extraire les 4 premiere letres vers la textbox4 les 6chiffres vers la text box5 et le dernier chiffre dans la textbox6.

2)Sur le code que j'ai il faudrait que quand toutes les informations apparaissent dans les textbox listbox etc quelle soit suprimé sur ma feuille11./b



'Modification container
Private Sub CommandButton1_Click()
Dim cel As Range, lig&, i&
If TextBox1 + TextBox2 + Label2 + TextBox3 <> "" Then
Set cel = Feuil11.Range("A2:A" & Feuil11.Range("A" & Rows.Count).End(xlUp).Row).Find(TextBox1 + TextBox2 + Label2 + TextBox3, , , xlWhole)
If Not cel Is Nothing Then lig = cel.Row Else MsgBox "Aucune correspondance trouvée", , "Pas de correspondance": Exit Sub
'UserForm3.TextBox4 = Feuil11.Cells(lig, 1)
'UserForm3.TextBox5 = Feuil11.Cells(lig, 1)
'UserForm3.TextBox6 = Feuil11.Cells(lig, 1)
'UserForm3.TextBox7 = Feuil11.Cells(lig, 2)
'UserForm3.TextBox8 = Feuil11.Cells(lig, 2)
UserForm3.ComboBox1 = Feuil11.Cells(lig, 3)
UserForm3.ComboBox2 = Feuil11.Cells(lig, 4)
UserForm3.TextBox18 = Feuil11.Cells(lig, 5)
UserForm3.TextBox146 = Feuil11.Cells(lig, 6)
UserForm3.ComboBox3 = Feuil11.Cells(lig, 7)
UserForm3.TextBox10 = Feuil11.Cells(lig, 8)
UserForm3.ComboBox5 = Feuil11.Cells(lig, 9)
UserForm3.ComboBox6 = Feuil11.Cells(lig, 10)
UserForm3.ComboBox7 = Feuil11.Cells(lig, 11)
UserForm3.ComboBox8 = Feuil11.Cells(lig, 12)
UserForm3.TextBox20 = Feuil11.Cells(lig, 13)
UserForm3.TextBox61 = Feuil11.Cells(lig, 14)
UserForm5.Hide
End If
End Sub
0
Bonjour,

Je comprend tres vite mais il faut m'expliqué longtemp.lol
Tes explications mon baucoup aidé j'ai pu modifier mon code et il fonctionne bien.

question suplaimentaire;

[b]1) dans la cellule A de ma feuille 11 j'ai un code du type AAAA666666-1 il me faut extraire les 4 premiere letres vers la textbox4 les 6chiffres vers la text box5 et le dernier chiffre dans la textbox6.

2)Sur le code que j'ai il faudrait que quand toutes les informations apparaissent dans les textbox listbox etc quelle soit suprimé sur ma feuille11./b

'Modification container
Private Sub CommandButton1_Click()
Dim cel As Range, lig&, i&
If TextBox1 + TextBox2 + Label2 + TextBox3 <> "" Then
Set cel = Feuil11.Range("A2:A" & Feuil11.Range("A" & Rows.Count).End(xlUp).Row).Find(TextBox1 + TextBox2 + Label2 + TextBox3, , , xlWhole)
If Not cel Is Nothing Then lig = cel.Row Else MsgBox "Aucune correspondance trouvée", , "Pas de correspondance": Exit Sub
'UserForm3.TextBox4 = Feuil11.Cells(lig, 1)
'UserForm3.TextBox5 = Feuil11.Cells(lig, 1)
'UserForm3.TextBox6 = Feuil11.Cells(lig, 1)
'UserForm3.TextBox7 = Feuil11.Cells(lig, 2)
'UserForm3.TextBox8 = Feuil11.Cells(lig, 2)
UserForm3.ComboBox1 = Feuil11.Cells(lig, 3)
UserForm3.ComboBox2 = Feuil11.Cells(lig, 4)
UserForm3.TextBox18 = Feuil11.Cells(lig, 5)
UserForm3.TextBox146 = Feuil11.Cells(lig, 6)
UserForm3.ComboBox3 = Feuil11.Cells(lig, 7)
UserForm3.TextBox10 = Feuil11.Cells(lig, 8)
UserForm3.ComboBox5 = Feuil11.Cells(lig, 9)
UserForm3.ComboBox6 = Feuil11.Cells(lig, 10)
UserForm3.ComboBox7 = Feuil11.Cells(lig, 11)
UserForm3.ComboBox8 = Feuil11.Cells(lig, 12)
UserForm3.TextBox20 = Feuil11.Cells(lig, 13)
UserForm3.TextBox61 = Feuil11.Cells(lig, 14)
UserForm5.Hide
End If
End Sub
0
Rejoignez-nous