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 :

ecrire dans un classeur fermé depuis un formulaire


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 4
    Points : 2
    Points
    2
    Par défaut ecrire dans un classeur fermé depuis un formulaire
    Bonjour a tous , je vous expose mon problème : j'ai une application à développer en VBA sous excel et son programme intégré pour le vba

    en gros quand l'utilisateur ouvre le classeur excel mon programme apparait et propose un formulaire dans un userform :

    http://imageshack.us/photo/my-images...rmulairez.png/

    tout fonctionne à un soucis prés et pas des moindres , le but de cette application est d'automatisé l'enregistrement dans les déclarations d'accident de travail (dont le formulaire est une copie ) en gros une fois le formulaire renseigné la personne clique sur enregistré et un classeur excel fermé servant de base de donnée est renseigné , j'ai réussi à établir une connexion entre mes deux classeurs (celui contenant l'application vba et celui fermé ) je peux afficher ce qui est écris dans le classeur fermé pour cela j'utilise le code la :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Sub RequeteClasseurFerme()
        Dim Cn As ADODB.Connection
        Dim Fichier As String
        Dim NomFeuille As String, texte_SQL As String
     
        'Définit le classeur fermé servant de base de données
        Fichier = "C:\Documents and Settings\konce\Bureau\bdd.xlsx"
        'Nom de la feuille dans le classeur fermé
        NomFeuille = "Feuil1"
     
        Set Cn = New ADODB.Connection
     
        '--- Connexion ---
        With Cn
            .Provider = "Microsoft.Jet.OLEDB.4.0"
           .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
                & Fichier & ";Extended Properties=""Excel 12.0;HDR=YES;"""
            .Open
        End With
        '-----------------
     
     
        '
        '... la requête ...
        '
        MsgBox ExecuteExcel4Macro("'C:\Documents and Settings\konce\Bureau\[bdd.xlsx]Feuil1'!R1C1")
        MsgBox ExecuteExcel4Macro("'C:\Documents and Settings\konce\Bureau\[bdd.xlsx]Feuil1'!R1C2")
        '--- Fermeture connexion ---
        Cn.Close
        Set Cn = Nothing
     
    End Sub
    mais je n'arrive pas à écrire dedans par rapport au champ du formulaire , en gros je veux que quand on clique sur enregistré , toutes les données renseignées dans les champs sont enregistrées dans le classeur fermée (préparé pour accueillir les données au préalable )

    quelqu'un connaitrait la méthode s'il vous plait ?

  2. #2
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 4
    Points : 2
    Points
    2
    Par défaut <
    re , désolé du double post mais personne n'a posté de reponse et comme j'ai "avancé" un peu je voulais vous montrez un peu plus ce que j'essaye de faire

    donc j'ai un peu modifié la fonction qui permet de me connecter au classeur en essayant d'ajouter des valeurs dans le classeur fermé de cette façon :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    Sub RequeteClasseurFerme()
        Dim Cn As ADODB.Connection
        Dim Fichier As String
        Dim Feuille As String, strSQL As String
        Dim PrixUnit As Integer
        Dim LeNom As String, lePrenom As String
        Dim LaDate As String
        
        'Définit le classeur fermé servant de base de données
        Fichier = "C:\Documents and Settings\konce\Bureau\bdd.xls"
        'Nom de la feuille dans le classeur fermé
        Feuille = "Feuil1"
        
        LaDate = "test"
        LeNom = "NomTest"
        lePrenom = "PrenomTest"
        PrixUnit = 40
        
        Set Cn = New ADODB.Connection
        
        '--- Connexion ---
        With Cn
            .Provider = "MSDASQL"
            .ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};" & _
                "DBQ=" & Fichier & "; ReadOnly=False;"
            .Open
        End With
        '-----------------
        
        
        '
        '... la requête ...
        '
        
        strSQL = "INSERT INTO [" & Feuille & "$] " _
            & "VALUES (#" & LaDate & "#, " & _
            "'" & LeNom & "', " & _
            "'" & lePrenom & "', " & _
            PrixUnit & ")"
     
        
        Cn.Execute strSQL
        '--- Fermeture connexion ---
        Cn.Close
        Set Cn = Nothing
    
    End Sub
    donc je déclare 4 variable et les initialise avec soit une chaine de caractère soit un nombre puis via une requete SQL (trouver sur ce site) et de INSERT INTO j'essaye d'ajouter des valeurs dans le classeur fermé servant de BDD

    je fais appel a la fonction via le userform et son bouton qui permet d'enregistré de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub record_Click()
     
    ThisWorkbook.RequeteClasseurFerme
     
    End Sub
    et donc quand je lance mon application et appuie sur enregistré j'obtiens une erreur qui est :
    Erreur d'exécution'-2147217913(8J040e07)': Erreur Automation
    et quand je fais debogage pas a pas le programme plante au niveau du Cn.Execute strSQL de la fonction RequeteClasseurFerme si dessus , quelqu'un aurait-il déjà été confronté a ce problème ?

    PS : précision par rapport a mon classeur fermé , j'ai juste rempli les deux première lignes des 4 première colonnes en gros j'ai mis 4 nom au 4 première cellule de la première ligne puis 4 valeur au 4 première cellule de la 2eme ligne , je n'ai appliqué aucun format au cellule

Discussions similaires

  1. [XL-2010] Ecrire dans un classeur fermé à une page qui dépend d'un paramètre
    Par Grem974 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 10/06/2015, 17h07
  2. Ecrire dans un classeur excel fermé
    Par schmitx dans le forum Excel
    Réponses: 0
    Dernier message: 02/02/2014, 18h28
  3. Ecrire dans un classeur fermé
    Par zahui_eric dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/10/2012, 20h58
  4. Ecrire dans un tableau html depuis une fonction js ?
    Par botanica dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/10/2005, 12h48

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