Rapport de message :*
 

Re: Excel, VBA, Base de donnée

Titre du sujet : Re: Excel, VBA, Base de donnée
par myDearFriend! le 03/01/2010 01:04:38

Bonsoir mishka, le Forum,

Tu trouveras ci-joint peut-être une façon de faire.

J'ai tout d'abord échangé tes zones de liste issues de la barre d'outils "Formulaires" contre ceux issus de la boîte à outils Contrôles Visual Basic (voir au besoin le Tuto n° 3 pour faire connaissance avec la barre d'outils VBA). C'est à mon avis le premier réflexe à avoir pour celui ou celle qui veut faire du VBA.

Pour simplifier la procédure, j'ai aussi lié ces contrôles ComboBox aux 10 premières cellules de la colonne O sur la même feuille (colonne qu'il conviendra de masquer au même titre que les colonnes I à N).

Réduit à l'essentiel, le code VBA est ensuite saisi dans le module de code de la feuille "Questionnaire" :
Option Explicit
' myDearFriend!  -  www.mdf-xlpages.com

Private Sub btnAjouter_Click()
Dim R As Range
Dim L As Long
    If Application.CountA(Range("O1:O10")) < 10 Then
        MsgBox "Tous les éléments doivent être renseignés !"
        Exit Sub
    End If
    With Sheets("BD-Réponse")
        'Numéro de la prochaine ligne libre dans la base
        L = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
        'Stockage des données
        .Range(.Cells(L, 1), .Cells(L, 10)).Value = Application.Transpose(Range("O1:O10").Value)
    End With
    'RAZ du formulaire
    Range("O1:O10").ClearContents
    Beep
End Sub

Private Sub ComboBox1_Change()
    'Pour conserver le format date dans le ComboBox1
    If ComboBox1.Text <> "" Then
        ComboBox1.Value = Format(CDate(ComboBox1.Value), "dd/mm/yyyy")
    End If
End Sub

En espérant que ça puisse t'aider...

Cordialement,