Aide pour code VBA

Résolu
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

4 réponses

  1. Bonjour
    j'ais jouer avec ta base
    ça va te donner des idées

    http://www.cjoint.com/c/GCum1vCf1mt
    A+
    Maurice
    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.
      1. Contributeur
        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...
        1. Contributeur
          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
      2. 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