Saisie BDD :lecture/sauvegarde

Résolu
New_VBA_User Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   -  
New_VBA_User Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

4 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
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   Statut Membre Dernière intervention   1
 
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 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > New_VBA_User Messages postés 82 Date d'inscription   Statut Membre Dernière intervention  
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention  
 
bonjour f894009, tout va!
il y a une autre discussion en cours sur (presque) le même sujet?
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
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   Statut Membre Dernière intervention   1
 
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 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention  
 
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 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
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   Statut Membre Dernière intervention   1 > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
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 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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   Statut Membre Dernière intervention   1
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > New_VBA_User Messages postés 82 Date d'inscription   Statut Membre Dernière intervention  
 
as-tu applique la suggestion en #31?
0
New_VBA_User Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   1 > cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention  
 
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   Statut Membre Dernière intervention   1 > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
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   Statut Membre Dernière intervention   1
 
Merci à tous pour votre aide.

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