Aide pour code VBA

Résolu
christ69fr Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   -  
 momo -
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

momo
 
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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
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   Statut Membre Dernière intervention   1
 
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
momo
 
Bonjour
j'ais jouer avec ta base
ça va te donner des idées

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