IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[VBA-E] copie d'un formulaire dans un Base de données


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut [VBA-E] copie d'un formulaire dans un Base de données
    Bonjour,
    J’ai un problème de prog. sous vba excel. Sans doute sans difficulté pour des initiés, oui mais voilà je suis débutant …

    En bref je souhaite :
    - saisir des données dans une userform « saisie »
    - copier ces données dans une feuille « base de données », à la suite des précédentes
    - que le nom « bd » soit donné à la base de données (de la ligne de titre à la dernière ligne)

    Bien sur, les données à copier sont sur plusieurs lignes et plusieurs colonnes.
    1 ligne par reference (2 refs)
    1 colonne par défaut (3 défauts)
    Chaque ligne, de la base de donnée, saisie est précédée de la date
    et ce à chaque saisie.

    SVP : unpeu d'aide, une méthode, un code approchant....
    J'ai pensé à un tableau multidimensionnel mais je ne suis pas sur de moi et surtout je n'y connais pas grand chose.

    Merci d'avance

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Bonjour bigbozz, bienvenue sur le forum.
    Donne un exemple de quelques lignes de l'organisation de ta base de données
    Tu fais une copie d'une plage de cellules contenant quelques lignes renseignées, tu mets ça dans Paint, tu enregistres en jpg et tu le lis à ton message (le trombone)
    A+

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut copie d'un formulaire dans un Base de données
    Ci joint les aperçus de ma base de données et de ma userform.
    Je souhaite copier l'intégralité des données de ma userform à chaque fois.

    A vrai dire j'en suis qu'au début de mon fichier et il s'agit d'un exemple "général" qui je l'espère me permettra de l'appliquer à mon cas particulier. Mais pour l'instant il s'agit bien, pour moi, de trouver un code simple afin de comprendre les mécanismes.

    merci.

    J'espère que mon intitulé correspond bien à ma demande
    Images attachées Images attachées   

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Tu as donc deux séries de texbox renseignés manuellement dont tu veux placer le contenu sur deux lignes consécutives
    Déjà, je pense que tu voudras vérifier que tous les champs sont bien renseignés
    Ensuite, il te faut connaître la dernière ligne de ta base afin d'écrire sur la ligne suivante.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Noligne = Range("A1").SpecialCells(xlCellTypeLastCell).Row + 1
    Après, il ne reste plus qu'à copier.
    Tu as plusieurs solutions, en voilà une.
    On sait que sur la première ligne on aura A, sur la deuxième, B.
    Si tu nommes tes Textbox du même nom (Ref) suivi de 3, 4 et 5 pour RefA et 6, 8 et 10 pour RefB, ce qui donnerait pour tes texbox les noms de Ref3, Ref4 et Ref5 pour Ref:A et Ref6, Ref8 et Ref10 pour Ref:B, c'est tout simple.
    Quant au textbox de la date, je lui donne le nom LaDate
    Dans le click du bouton "Enregistrer dans bd", tu mets :
    'NoColonne = 1... Donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Cells(Noligne, 1).value = LaDate.text
    Cells(Noligne+1, 1 ).value = LaDate.text
    'Pour ces lignes, tu peux avoir un pb de format, on verra plus tard
    'On passe à la colonne Référence -> NoColonne = 2... Donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Cells(Noligne, 2).value = "A"
    Cells(Noligne+1, 2).value = "B"
    et on passe aux 3 textbox
    Je reprends tout
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Private Sub CommandButton1_Click()
    NoLigne = Range("A1").SpecialCells(xlCellTypeLastCell).Row + 1
    Cells(NoLigne, 1).Value = LaDate.Text
    Cells(NoLigne + 1, 1).Value = LaDate.Text
    Cells(NoLigne, 2).Value = "A"
    Cells(NoLigne + 1, 2).Value = "B"
    'On passe aux 3 textbox
    NoCol = 3 'les données vont être placées à partir de la colonne 3
    For NoCol = 3 To 5
        NomTBA = "Ref" & NoCol
        Cells(NoLigne, NoCol).Value = UserForm1.Controls(NomTBA)
        NomTBB = "Ref" & (NoCol * 2)
        Cells(NoLigne + 1, NoCol).Value = UserForm1.Controls(NomTBB)
    Next
    End Sub
    Tu dis ce que ça donne

    NB - pour mon test, j'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub UserForm_Initialize()
    LaDate = Now()
    Ref3 = "3"
    Ref4 = "4"
    Ref5 = "7"
    Ref6 = "5"
    Ref8 = "8"
    Ref10 = "10"
    RefA = "Ref:A"
    RefB = "Ref:B"
    End Sub
    Si ça peu faciliter tes tests

  5. #5
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    tiens un exemple de code à mettre derriére ton bouton Enregistrer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     Dim fBd As Worksheet 'Feuille de calcul base de donnée
     Dim iNLg As Integer ' Numero nouvelle ligne
     Set fBd = ThisWorkbook.Sheets("Feuil1") 'Assigne la feuille bd..
     iNLg = fBd.Range("A1").CurrentRegion.Rows.Count + 1
     
     'Puis rajout de chacun des champs ...
     fBd.Cells(iNLg, 1) = txtJour ' txtJour = Nom du textbox...
     fBd.Cells(iNLg, 2) = txtRef ' textBox référence...
     
     Set fBd = Nothing 'Libere fBD
    [Edit] oups entre-temps ousk' est passé par la ...

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Hello bbil, le (petit) pb était qu'il renseignait 2 lignes en même tps. Si tu as une meilleure solution, apprends-nous
    A+

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    ça marche !!!!

    Pour l'instant ça m'enlève une épine du pied. Je peux enfin avancer dans mon application.

    J'adapte le code à mon application et je vous tiens au courant.
    Nul doute que d'autres questions vont venir à moi.

    Merci

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    OK merci les gars, ca marche.
    Pour l'instant, je n'utilise pas de nom pour exploiter mes Bases de données.

    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme insertion multiple d'une formulaire dans la base de donné
    Par geni1985 dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 03/04/2011, 21h48
  2. [MySQL] Inscription des données d'un formulaire dans une base de données
    Par xjulio59 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 25/08/2010, 14h45
  3. Réponses: 1
    Dernier message: 03/10/2009, 13h52
  4. Réponses: 5
    Dernier message: 03/04/2009, 20h51
  5. [MySQL] Enregistrement formulaire dans ma base de donnée
    Par pixstaff dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 25/01/2008, 23h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo