Aide pour code VBA

Résolu/Fermé
christ69fr Messages postés 22 Date d'inscription lundi 25 mai 2009 Statut Membre Dernière intervention 20 mars 2017 - 15 mars 2017 à 18:38
 momo - 20 mars 2017 à 13:55
Bonjour,

J'ai créer un doc pour un inventaire des postes informatique dans le groupes scolaires. J'ai un formulaire pour pouvoir modifier et enregistrer mes données, mais le problème est qu'il ne trouve pas les données enregistrer.

Est-ce quelqu'un peut me dire si mes codes VBA sont bon est adapté a mon tableau.

Merci.

http://www.cjoint.com/c/GCprIrxpWh1


A voir également:

4 réponses

Bonjour
dur dur
voila déjà un debut
'Private Sub Userform_initialized()
Private Sub UserForm_Initialize()
Set Ws = Sheets("Inventaire salle info GS")
   ComboBox1.List = Ws.Range("A2:A" & Ws.Range("A" & Rows.Count).End(xlUp).Row).Value
   'Pour la liste déroulante Civilité
   ComboBox2.List = Array("", "M.", "Mme", "Mlle")
End Sub

A+
Maurice
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 311
16 mars 2017 à 09:02
Bonjour

Effectivement!...

dans le code de l'userform il y a 2 "Private Sub Userform_initialize()" dont 1 vide et l'autre, celui codé, comporte une faute de frappe "Private Sub Userform_initialized()

" Inventaire_salle_info_GS " au lieu de "Inventaire_salle_info_GS"

donc, il ne se passe rien

d'autre part, dans ton code,Combobox2 installe une civilité ??? alors qu'il s'agit du groupe scolaire !!!!
Tu as env 160 lignes et 20 colonnes: pourquoi déclarer en long alors que "Byte" suffit largement ?

tu as 17 textbox et tu boucles sur 20 textbox...

etc, etc...


ci dessous proposition de code pour le chargement en Usf du choix d'un identifiant colonne A
Option Explicit
Dim Ws As Worksheet
'----------------------------------
'Pour le formulaire
Private Sub Userform_initialize()
Dim LIg As Byte
Set Ws = Sheets("Inventaire salle info GS")
With Me.ComboBox1
For LIg = 2 To Ws.Range("A" & Rows.Count).End(xlUp).Row
.AddItem Ws.Range("A" & LIg)
Next
End With
End Sub
'---------------------------------------------------
Private Sub ComboBox1_Change()
Dim Ligne As Byte, Col As Byte
If Me.ComboBox1.ListIndex = -1 Then Exit Sub
With Ws
Ligne = .Columns("A").Find(ComboBox1, .Range("A1"), xlValues).Row
ComboBox2 = .Cells(Ligne, "B")
For Col = 1 To 17
Me.Controls("TextBox" & Col) = .Cells(Ligne, Col + 2)
Next
End With
End Sub


Pour la suite nouveau, modif... ,je regarde dès que je peux...
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 311
Modifié par michel_m le 16/03/2017 à 09:45
J'ai jeté un œil pour la correspondance des textbox et leur position dans la feuille: les affectations cellule-textbox sont la plupart du temps fausses ! les données dans l'userform ne correspondent pas
donc rectifie ces erreurs si tu veux continuer l'aide: il faut que les numéros de textbox suivent l'ordre dans la feuille inventaire

a noter que l'ordre "au cas pas cas" dans un nouveau pc est faux aussi
0
christ69fr Messages postés 22 Date d'inscription lundi 25 mai 2009 Statut Membre Dernière intervention 20 mars 2017 1
20 mars 2017 à 04:19
Merci, Michel_m. J'ai vu les erreurs que tu as cités ci-dessus. J'ai fait les correctifs comme tu as dis dessus. Et pour le reste c'est Ok. Grace à momo et a toi, j'ai réussir à résoudre mon problèmes. Merci.
Je vais clore le sujet pour l'instant.
0
Bonjour
j'ais jouer avec ta base
ça va te donner des idées

http://www.cjoint.com/c/GCum1vCf1mt
A+
Maurice
0