Saisie BDD :lecture/sauvegarde

Résolu/Fermé
New_VBA_User Messages postés 82 Date d'inscription mardi 27 août 2019 Statut Membre Dernière intervention 3 octobre 2019 - 27 août 2019 à 15:35
New_VBA_User Messages postés 82 Date d'inscription mardi 27 août 2019 Statut Membre Dernière intervention 3 octobre 2019 - 10 sept. 2019 à 09:58
Bonjour,

Fichier d’exemple : https://www.cjoint.com/c/IHBnGhAeKWI

J’aimerai crée une base de données avec des critère de saisie, j’ai besoin d’un peu d’aide pour bien faire des choses, pour ne pas trop chargé le programme, je pense qu’il y a les moyens de faire plus rapidement.

Je tape la valeur d’une ligne dans le textbox « Epuipement » et on vient charger les donné dans les textbox prévue dans frame « Caractéristique » depuis la feuille "Filtered Data SAP"

Et les bouton Next et Previous permet de lire les ligne haut et en bas depuis la ligne sélectionné, la ligne sélectionné à un tour de retard je ne sais pas pourquoi ?

Ce que j’aimerai faire c’est saisir les données dans les autres champ vides et les enregistrés avec le bouton « Save Data » dans la feuille « DataBase Application » avec les critères défini.

À chaque valeur saisie dans le textbox « Epuipement » charger les données de tous les champs.


Je ne sais pas s’il y a un moyen avec des boucles pour ne pas copier 100 lignes.

Merci de votre aide.
Salutations.



Configuration: Windows / Edge 18.17763

4 réponses

yg_be Messages postés 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024 1 471
Modifié le 27 août 2019 à 16:15
bonjour, veux-tu dire que ta procédure TextBox_EquipementSAP_Change ne fait pas ce que tu souhaites?
peux-tu expliquer à nouveau en mentionnant tes procédures dans la description?
1
New_VBA_User Messages postés 82 Date d'inscription mardi 27 août 2019 Statut Membre Dernière intervention 3 octobre 2019
27 août 2019 à 16:23
Bonjour,

tout ce qu'il y est dans la procédure TextBox_EquipementSAP_Change, fonctionne, je pense que pour charger les donné dans les autres champs vide depuis la feuille « DataBase Application », je dois écrire une ligne pour chaque critère (env. 100 critère) est-ce qu'il y a un moyen autre de faire ça dans écrire 100 lignes env.

je sais si c'est claire comme ça sinon je suis dispo pour d'autres renseignement.

Merci
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
27 août 2019 à 16:28
Bonjour yg_be
Ca roule?

Cote rapidite excecution pour toutes recherches, je lui ai remis un code qui fait le boulot et le gars ne le teste meme pas.....

Pour son "probleme" textbox equipement, apparemment ca fait ce qu'il a demande, mais .......
0
yg_be Messages postés 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024 1 471 > New_VBA_User Messages postés 82 Date d'inscription mardi 27 août 2019 Statut Membre Dernière intervention 3 octobre 2019
27 août 2019 à 16:28
as-tu déjà une procédure qui fait partiellement ce que tu veux réaliser (charger les donné dans les autres champs vide depuis la feuille « DataBase Application »)?
ce sera plus facile pour déterminer comment faire pour les 100 critères.
0
yg_be Messages postés 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024 1 471 > f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024
27 août 2019 à 16:38
bonjour f894009, tout va!
il y a une autre discussion en cours sur (presque) le même sujet?
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
27 août 2019 à 16:46
Re,
ca flotte.

Rectification:
"Cote rapidite", est p'tete pas a lui qui j'ai remis un code…...

Pour le reste du code, a fait ce qu'il pensait etre bon ou qui marchait, d'ou des choses bizares ......
0
yg_be Messages postés 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024 1 471
27 août 2019 à 16:25
qu'essaies-tu de faire ainsi?
            val.Select
            Me.TextBox_EquipementSAP.Value = Selection.Offset(1, 0).Value  ' Displays the value of a next line (down)
            val.Select

que veux-tu dire par "la ligne sélectionné à un tour de retard"?
peut-être voudrais-tu faire:
val.Offset(1, 0).Select
Me.TextBox_EquipementSAP.Value = Selection.Value
1
New_VBA_User Messages postés 82 Date d'inscription mardi 27 août 2019 Statut Membre Dernière intervention 3 octobre 2019
27 août 2019 à 16:50
val.Offset(1, 0).Select
Me.TextBox_EquipementSAP.Value = Selection.Value



C'est-ce que je voulais faire, selectionné la ligne active.

Merci.
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié le 27 août 2019 à 17:13
Bonjour New_VBA_User

Une derniere intervention et je vous laisse avec yg_be.

Pour Vos 100 critères, vu que vous avez déjà le nom des textboxs, au plus simple, vous creez un tableau avec le nom des 100 textbox dans l'ordre. Ensuite vous faites une boucle comme ceci

    'Table nom textboxs
    TTextbox = Array("TextBox_Ver", etc)
    With Worksheets("Criteria")
        For n = 0 To 99
            Me.Controls(TTextbox(n)) = .Cells(n + 2, 1)
        Next n
    End With
0
yg_be Messages postés 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024 1 471 > f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024
27 août 2019 à 17:08
je pense qu'on peut reconstruire le nom des textbox à partir des entêtes de colonne. c'est pas
Controls
?
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
27 août 2019 à 17:14
Re,

Autant pour moi, Controls avec un s dans le code que j'ai ecrit. je viens de rectifier….
0
New_VBA_User Messages postés 82 Date d'inscription mardi 27 août 2019 Statut Membre Dernière intervention 3 octobre 2019 > yg_be Messages postés 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024
4 sept. 2019 à 14:29
Bonjour,

Je reviens concernant cette discussion, j'ai essayé de comprendre les différent solutions proposé, mais j'y arrive pas.

Je n'essaye pas de créer des nom des textbox à partir des entêtes de colonne.

Je veux écrire la valeur dans les textbox vides et les enregistré dans une feuille Excel et ensuite charger ces même donné quand le textbox équipement change.

est-ce possible que vous m'aidiez en faisant des tests ou des solutions directement dans le fichier exemple, car quand le code est directement proposé dans les réponse, je ne sais pas ou intégrer dans le programme.

Merci d'avance.
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
4 sept. 2019 à 17:09
Bonjour à tous,

Le plus simple, mettre la propriété TabIndex de chaque TextBox en fonction des colonnes:

TextBox_EquipementSAP = TabIndex 0

TextBox_Sortfield= TabIndex 1

etc.

et voici le code:

 Dim Ctrl As Control
For Each Ctrl In Controls
    If TypeName(Ctrl) = "TextBox" Then
Ctrl.Object.Value = Cells(2, Ctrl.TabIndex + 1) 'ligne 2 a adapter
    End If
Next Ctrl


Si cela avait été fait lors de la conception!!!

La programmation c'est 80% de cogitation à la préparation et 20 % pour le code
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
5 sept. 2019 à 08:30
voilà un exemple sur la Frame Caractéristique:

https://www.cjoint.com/c/IIfgCBFlBcQ

@+ Le Pivert
0
New_VBA_User Messages postés 82 Date d'inscription mardi 27 août 2019 Statut Membre Dernière intervention 3 octobre 2019
6 sept. 2019 à 09:32
Merci pour la solution, mais cette je ne peux pas appliquer, car mes textbox ne sont pas dans le mêm ordre que les colonne dans laquelle je vais enregistré les donné.
0
yg_be Messages postés 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024 1 471 > New_VBA_User Messages postés 82 Date d'inscription mardi 27 août 2019 Statut Membre Dernière intervention 3 octobre 2019
6 sept. 2019 à 09:54
as-tu applique la suggestion en #31?
0
New_VBA_User Messages postés 82 Date d'inscription mardi 27 août 2019 Statut Membre Dernière intervention 3 octobre 2019 > cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024
6 sept. 2019 à 09:59
Merci pour la solution, mais cette je ne peux pas appliquer, car mes textbox ne sont pas dans le mêm ordre que les colonne dans laquelle je vais enregistré les donné..
0
New_VBA_User Messages postés 82 Date d'inscription mardi 27 août 2019 Statut Membre Dernière intervention 3 octobre 2019 > yg_be Messages postés 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024
6 sept. 2019 à 10:04
désolé, le commentaire d'avant n'était pas tout toi.

oui, j'ai fait comme ci-dessous et ça ne marche pas.

for ncol = 1 to 22
     Me.Controls("TextBox_" + CStr(.Cells(1, ncol))) = .Cells(nom.Row, ncol)
 next ncol


1 to 22 car j'ai 22 colonne, je pense que c'est correct et la ligne suivant avec controls je ne sais pas comment adapté comme t'avais demandé.

au secours, ça devient urgents, depuis quelques jours de je galère sur ça.

Merci
0
New_VBA_User Messages postés 82 Date d'inscription mardi 27 août 2019 Statut Membre Dernière intervention 3 octobre 2019
10 sept. 2019 à 09:58
Merci à tous pour votre aide.

C'est sympa de compter sur une vrai communauté VBA :)
0