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 :

Transférer des données d'un fichier vers un autre (Espace commun) [XL-2007]


Sujet :

Macros et VBA Excel

  1. #41
    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 038
    Points
    20 038
    Par défaut
    Citation Envoyé par capi81 Voir le message
    .. il y'a erreur ici:
    bon tu connais la question qu'on vas te poser ... ! !!!!!!


    comment ce manifeste ton erreur ? s'il y as un message commence par le lire puis le recopier ici ... le fait de le copier t'aideras peu-être à le comprendre ...



    PS : Rajoute un post-it sur ton écran :" Lorsque j'ai un message d'erreur je le LIS j'essais de le comprendre et si je n'arrive pas à le comprendre je le copie sur le forum "..

  2. #42
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2011
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2011
    Messages : 571
    Points : 93
    Points
    93
    Par défaut
    Voici le contenu du message :
    Erreur d’exécution ‘-2147217900(80040e14)’ : Erreur de syntaxe dans l’instruction INSERT INTO

  3. #43
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    Si c'est de ce post :
    Citation Envoyé par capi81 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    strSQL = "insert into [" & Feuille & "] ([DATE INITIATION],[NUM CLIENT],[REVENU],[CUMUL ENGAGEMENT],[VISA DEMANDE],) "
            strSQL = strSQL & "Values ('textbox1.vaue','textbox2.value','textbox3.value','textbox4.value','textbox5.value','textbox6.value');"
    J'ai testé mais résultat pas concluant. il y'a erreur ici:
    Citation Envoyé par bbil
    Rajoute un post-it sur ton écran :" Lorsque j'ai un message d'erreur je le LIS j'essais de le comprendre et si je n'arrive pas à le comprendre je le copie sur le forum "..


    Cdt
    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  4. #44
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2011
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2011
    Messages : 571
    Points : 93
    Points
    93
    Par défaut
    rdurupt : j'ai enlevé la virgule mais toujours la même erreur.

  5. #45
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    @capi81, vous lisez les posts au moins lorsque nous vous répondons ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    strSQL = "insert into [" & Feuille & "] ([DATE INITIATION],[NUM CLIENT],[REVENU],[CUMUL ENGAGEMENT],[VISA DEMANDE],) "
             strSQL = strSQL & "Values ('textbox1.vaue','textbox2.value','textbox3.value','textbox4.value','textbox5.value','textbox6.value');"
    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  6. #46
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2011
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2011
    Messages : 571
    Points : 93
    Points
    93
    Par défaut
    Vous avez raison et je m’excuse.
    Sinon que j'ai pris en compte votre observation.
    J'ai corrigé VAUE en value mais sans gain de cause.
    Dans mes recherches personnelles, j'ai ajouté ce code "on error resume next".
    Il ne signale plus l'erreur mais quand je vérifie la feuille de destination, rien n'a été collé donc toujours pas ok.

  7. #47
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut





    On Error … a pour utilité de masquer le problème mais ne le règle en aucune manière ‼

    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  8. #48
    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 038
    Points
    20 038
    Par défaut
    capi81 , montre nous ou tu en est de ton code ...

    déjà il y as un problème (qui n'est pas la cause de ton erreur ...) c'est que tu as mis tes textbox.value .. à l'intérieur des guillemets donc lorsque cela vas marcher tu va insérer les nom de tes textbox dans ta base et pas leur valeurs. ....

  9. #49
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Hormis ce qui est en rouge rien ne vous choc entre le nombre de colonnes définies et le nombres de valeurs à insérer ?

    Edit: @bbil, vous avez raison, on se demande ou il en est à force....
    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  10. #50
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2011
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2011
    Messages : 571
    Points : 93
    Points
    93
    Par défaut
    Voici le code tenant compte de mes adaptations:
    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
    Sub Requet_Test()
            Dim source As Object
            Dim requete As Object
             On Error Resume Next
            Dim Fichier As String, Feuille As String, strSQL As String
            Fichier = "W:\GESTION_VISA_CHEQUE\BASE_VISA.xlsx" 'chemin complet du fichier fermé
            Feuille = "BASE_DE_DONNEES$" 'Onglet où les données doivent être insérées
            Set Cnx = CreateObject("ADODB.Connection")
     
            With Cnx
             .Provider = "Microsoft.Jet.OLEDB.4.0"
                    .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
                        & Fichier & ";Extended Properties=""Excel 12.0;HDR=YES;"""
                    .Open
            ' .Provider = "MSDASQL"
            '.ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};" & _
            '"DBQ=" & Fichier & "; ReadOnly=False;"
            '.Open
            End With
            'Les données doivent être indiquées dans le même ordre que les champs dans la base de données.
     
            strSQL = "insert into [" & Feuille & "] ([DATE_INITIATION],[NUM_CLIENT],[REVENU],[CUMUL_ENGAGEMENT],[VISA_DEMANDE], [AUTORISATION]) "
            strSQL = strSQL & "Values ('textbox1.value','textbox2.value','textbox3.value','textbox4.value','textbox5.value','textbox6.value');" 'DE2545';"
            Cnx.Execute strSQL
            Set requete = CreateObject("ADODB.recordset")
            strSQL = "select * from [" & Feuille & "]  where  [DATE_INITIATION]='Textbox1.value';"
            requete.Open strSQL, Cnx
            While requete.EOF = False
     
     
            Debug.Print requete("DATE_INITIATION") & " | " & requete("NUM_CLIENT") & " | " & requete("CUMUL_ENGAGEMENT")
            requete.movenext
            Wend
            Cnx.Close
            Set Cnx = Nothing
            End Sub
    En rappel voici ce que je souhaite:
    la valeur du textbox1 doit être copier sur le champ "DATE_INITIATION"
    la valeur du textbox2 doit être copier sur le champ "NUM_CLIENT"
    la valeur du textbox3 doit être copier sur le champ "REVENU"
    la valeur du textbox4 doit être copier sur le champ "CUMUL_ENGAGEMENT"
    la valeur du textbox5 doit être copier sur le champ "VISA_DEMANDE"
    la valeur du textbox6 doit être copier sur le champ "DATE_INITIATION"

  11. #51
    Invité
    Invité(e)
    Par défaut
    désolé Chtulus ,
    Le train; le magé; le merevoisla!
    Code Gestion_Users : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub CB_Modifier_Click()
    Dim strSQL As String
    OpenConnexion Fichier
    strSQL = "insert into [" & Feuille & "] ([DATE_INITIATION'],[NUM_CLIENT],[REVENU],[CUMUL_ENGAGEMENT],[VISA_DEMANDE],[DATE_INITIATION]) "
            strSQL = strSQL & "Values ('" & TextBox1.Value & "','" & TextBox2.Value & _
            "','" & TextBox3.Value & "','" & TextBox4.Value & "','" & TextBox5.Value & "','" & TextBox6.Value & "');"
    Cnx.Execute strSQL
    Set Cnx = Nothing
    End Sub
    dans un module standard
    Code Module1 : 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
    Public Cnx As Object
    Public Const Feuille = "BASE_DE_DONNEES$"
    Public Const Fichier = "C:\Users\Robert\Desktop\Fichier_Arrivé.xlsx"
    Sub RequetAjout()
     
    Dim strSQL As String
    OpenConnexion Fichier
    strSQL = "insert into [" & Feuille & "] ([DATE INITIATION],[NUM CLIENT],[REVENU],[CUMUL ENGAGEMENT],[VISA DEMANDE],[AUTORISATION],[SOLDE AVANT VISA],[SOLDE APRES VISA],[SITUATION NETTE],[DELAI DE REGULARISATION],[COMMENTAIRE CC],[AVIS DGAE],[COMMENTAIRE DGAE],[AVIS RPR],[COMMENTAIRE RPR],[AVIS ANALYSTE],[COMMENTAIRE ANALYSTE],[AVIS DZ],[COMMENTAIRE DZ],[AVIS DR],[COMMENTAIRE DR],[AVIS RAR],[COMMENTAIRE RAR],[CODE INITIATEUR],[CODE VALIDEUR],[AGENCE],[DATE VALIDATION]) "
    strSQL = strSQL & "Values ('DATE INITIATION','NUM CLIENT','REVENU','CUMUL ENGAGEMENT','VISA DEMANDE','AUTORISATION','SOLDE AVANT VISA','SOLDE APRES VISA','SITUATION NETTE','DELAI DE REGULARISATION','COMMENTAIRE CC','AVIS DGAE','COMMENTAIRE DGAE','AVIS RPR','COMMENTAIRE RPR','AVIS ANALYSTE','COMMENTAIRE ANALYSTE','AVIS DZ','COMMENTAIRE DZ','AVIS DR','COMMENTAIRE DR','AVIS RAR','COMMENTAIRE RAR','CODE INITIATEUR','CODE VALIDEUR','AGENCE','DATE VALIDATION');"
     
    strSQL = "insert into [" & Feuille & "] ([DATE INITIATION],[NUM CLIENT],[REVENU],[CUMUL ENGAGEMENT],[VISA DEMANDE]) "
            strSQL = strSQL & "Values ('textbox2.value','textbox3.value','textbox4.value','textbox5.value','textbox6.value');"
    Cnx.Execute strSQL
    Set Cnx = Nothing
    End Sub
    Sub RequeteMaj()
    OpenConnexion Fichier
    Set requete = CreateObject("ADODB.recordset")
    strSQL = "Update  [" & Feuille & "] set [NUM CLIENT]='toto'  where  [DATE INITIATION]='textbo(x2.value';"
    Cnx.Execute strSQL
    Cnx.Close
    End Sub
    Sub OpenConnexion(Fichier)
    Set Cnx = CreateObject("ADODB.Connection")
     
    With Cnx
     .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
     
    End Sub

  12. #52
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bô pourquoi rdurupt

    Le truc c'est que vous ne pouvez avancer quand en face on ne vous donne pas vraiment des billes non plus.

    Rien que dans le dernier post, ça me gonfle de voir que @capi81 est lui même perdu :
    la valeur du textbox1 doit être copier sur le champ "DATE_INITIATION"
    la valeur du textbox2 doit être copier sur le champ "NUM_CLIENT"
    la valeur du textbox3 doit être copier sur le champ "REVENU"
    la valeur du textbox4 doit être copier sur le champ "CUMUL_ENGAGEMENT"
    la valeur du textbox5 doit être copier sur le champ "VISA_DEMANDE"
    la valeur du textbox6 doit être copier sur le champ "DATE_INITIATION"
    strSQL = "insert into [" & Feuille & "] ([DATE_INITIATION],[NUM_CLIENT],[REVENU],[CUMUL_ENGAGEMENT],[VISA_DEMANDE], [AUTORISATION]) "
    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  13. #53
    Invité
    Invité(e)
    Par défaut
    effectivement le sql est pas évidant, quand on débute;
    je lui donnerai toute les informations qu'il désir plus tard, car je voudrai lui montrer que ça marche.
    avec des exemple comme je m’efforce de lui données et en les adaptant à c'est besoin en lui laissant l'initiative de les adapté mais coaché.

    en revanche pour la suppression d'un enregistrement ISAM me dit qu'il ne gère pas si quelqu'un a une idée je suis preneur!
    Dernière modification par AlainTech ; 11/09/2014 à 07h58. Motif: Suppression de la citation inutile

  14. #54
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2011
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2011
    Messages : 571
    Points : 93
    Points
    93
    Par défaut
    Enfin on arrive à une solution satisfaisante sous réserve de tests approfondis.
    J'ai essayé d'harmoniser les entêtes de mes champs pour ne pas laisser d'espace.
    Exemple : au lieu de Date INITIATION j'ai corrigé en Date_INITIATION. Il en est de même pour les entêtes similaires.
    rdurupt : permets moi d'avoir essayé de réadapté le code que tu as joint au controls de mon usf.
    J'ai réduit le nombre de champ pour ne laisser que les 6 premiers afin de faire mes tests.
    Au lieu de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    strSQL = "insert into [" & Feuille & "] ([DATE INITIATION],[NUM CLIENT],[REVENU],[CUMUL ENGAGEMENT],[VISA DEMANDE],[AUTORISATION],[SOLDE AVANT VISA],[SOLDE APRES VISA],[SITUATION NETTE],[DELAI DE REGULARISATION],[COMMENTAIRE CC],[AVIS DGAE],[COMMENTAIRE DGAE],[AVIS RPR],[COMMENTAIRE RPR],[AVIS ANALYSTE],[COMMENTAIRE ANALYSTE],[AVIS DZ],[COMMENTAIRE DZ],[AVIS DR],[COMMENTAIRE DR],[AVIS RAR],[COMMENTAIRE RAR],[CODE INITIATEUR],[CODE VALIDEUR],[AGENCE],[DATE VALIDATION]) "
    strSQL = strSQL & "Values ('DATE INITIATION','NUM CLIENT','REVENU','CUMUL ENGAGEMENT','VISA DEMANDE','AUTORISATION','SOLDE AVANT VISA','SOLDE APRES VISA','SITUATION NETTE','DELAI DE REGULARISATION','COMMENTAIRE CC','AVIS DGAE','COMMENTAIRE DGAE','AVIS RPR','COMMENTAIRE RPR','AVIS ANALYSTE','COMMENTAIRE ANALYSTE','AVIS DZ','COMMENTAIRE DZ','AVIS DR','COMMENTAIRE DR','AVIS RAR','COMMENTAIRE RAR','CODE INITIATEUR','CODE VALIDEUR','AGENCE','DATE VALIDATION');"
    J'ai ramené à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    strSQL = "insert into [" & Feuille & "] ([DATE_INITIATION],[NUM_CLIENT],[REVENU],[CUMUL_ENGAGEMENT],[VISA_DEMANDE],[AUTORISATION]) "
            strSQL = strSQL & "Values ('DATE_INITIATION','NUM_CLIENT','REVENU','CUMUL_ENGAGEMENT','VISA_DEMANDE','AUTORISATION);"
    Oubien j'aurai pas dû le modifier?
    une erreur de frappe à glissée dans cette partie et plus précisement (textbo(x2.value):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strSQL = "Update  [" & Feuille & "] set [NUM CLIENT]='toto'  where  [DATE INITIATION]='textbo(x2.value';"
    Je continu mes tests et vous reviens sous peu.
    bbil:vos conseils sur l'importance à accorder au message d'erreur m'ont permis de corriger les points d'erreur avant d'obtenir le fonctionnement des macros.
    Merci encore rdurupt.

  15. #55
    Invité
    Invité(e)
    Par défaut
    Avec ton UserForm n'oublis pas de refermer ta chaîne de caractère par " et le caractère de concaténation &
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strSQL = strSQL & "Values ('" & TextBox1.Value & "',
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    strSQL = "insert into [" & Feuille & "] ([DATE_INITIATION'],[NUM_CLIENT],[REVENU],[CUMUL_ENGAGEMENT],[VISA_DEMANDE],[DATE_INITIATION]) "
            strSQL = strSQL & "Values ('" & TextBox1.Value & "','" & TextBox2.Value & _
            "','" & TextBox3.Value & "','" & TextBox4.Value & "','" & TextBox5.Value & "','" & TextBox6.Value & "');"
    penses à me reparler des format de données comme les dates le numériques car tu pourras avoir des surprise mais pour l'instant digère

    note que tu peux laisser ton fichier "Fichier_Arrivé.xlsx" ouvert que ça ne gène pas pour le modifier via sql et que si en plus tu le déclare en partagé, tous tes utilisateur verront les modifications en temps réel sans à avoir à refermer puis ré-ouvrir le fichier
    Dernière modification par Invité ; 28/08/2014 à 22h15.

  16. #56
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2011
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2011
    Messages : 571
    Points : 93
    Points
    93
    Par défaut
    C'est noté.
    Je vais essayer d'adapter le code avec mes autres usf et vous rapporter le résultat.
    Pour les formats de date et de numérique, je n'hésiterai pas à vous contacter.
    Si vous me permettez, je vais vous soumettre la prochaine étape à réaliser sans pour autant brusquer les étapes:
    Le code que vous venez de réaliser permet de transférer les données de l'usf vers la base de donnée.
    Et si je souhaite faire l'inverse c'est à dire que les données de la base s'affichent dans les controls de mon usf.
    Comment coder cela?

  17. #57
    Invité
    Invité(e)
    Par défaut Bonjour,
    pas de problème! mais avant, car les conseillers ne sont pas les payeurs,nous allons valider la solution.
    quand j'ouvre un fichier Excel sur 2 machine différente, l'une des 2 machine voie sont fichier en lecture seul. pour enregistrer son fichier excel lui propose d'enregistrer sous!

    si tu configure ton classeur excel en mode partagé, les 2 machines pourront lire et écrire sur le même fichier. sauf que les valeur ne seront visible aux autre utilisateur qu'un foie les données enregistré et je ne suis pas sur qu'il ne doivent pas fermer et ré-ouvrir leur fichier pour voir les modification.

    donc configure ton fichier en partagé et test sur 2 machine.

    deuxièmement quant on aborde un nouveau sujet comme Sql, on ne voie que la montagne qu'il faut gravir en perdant du même coups tout raisonnement.

    pour assurer une unicité des données nous devons vérifier cette unicité par une requête. et là on revient à ta question! nous devons faire un requête de sélection:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Set requete = CreateObject("ADODB.recordset")
    strSQL = "select * from [" & Feuille & "]  where  [NUM CLIENT]=]='" & Me.TextBox3 & "';"
    requete.Open strSQL, Cnx
    If requete.EOF = False Then 'False indique que la requête retourne une valeur
    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
    Set requete = CreateObject("ADODB.recordset")
    strSQL = "select * from [" & Feuille & "]  where  [NUM CLIENT]=]='" & Me.TextBox3 & "';"
    requete.Open strSQL, Cnx
    If requete.EOF = False Then
        MsgBox "Existe..."
    Else
       strSQL = "insert into [" & Feuille & "] ([DATE_INITIATION],[NUM_CLIENT],[REVENU],[CUMUL_ENGAGEMENT],[VISA_DEMANDE],[DATE_INITIATION]) "
            strSQL = strSQL & "Values ('" & TextBox1.Value & "','" & TextBox2.Value & _
            "','" & TextBox3.Value & "','" & TextBox4.Value & "','" & TextBox5.Value & "','" & TextBox6.Value & "');"
        'et enfin on exécute la requête
        Cnx.Execute strSQL
    End If
    requete.Close
    Set requete = Nothing
    Cnx.Close 'on referme la connection
     
    Set Cnx = Nothing
    pour récupérer les données et les coller dans ton US:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Set requete = CreateObject("ADODB.recordset")
    strSQL = "select * from [" & Feuille & "]  where  [NUM CLIENT]=]='" & Me.TextBox3 & "';"
    requete.Open strSQL, Cnx
    If requete.EOF = False Then
        TextBox1.Value = requete("DATE_INITIATION")
        TextBox2.Value = requete("NUM_CLIENT")
        TextBox3.Value = requete("REVENU")
        TextBox4.Value = requete("CUMUL_ENGAGEMENT")
        TextBox5.Value = requete("VISA_DEMANDE")
        TextBox6.Value = requete("DATE_INITIATION")
    End If

  18. #58
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Citation Envoyé par rdurupt Voir le message
    note que tu peux laisser ton fichier "Fichier_Arrivé.xlsx" ouvert que ça ne gène pas pour le modifier via sql et que si en plus tu le déclare en partagé, tous tes utilisateur verront les modifications en temps réel sans à avoir à refermer puis ré-ouvrir le fichier
    En voilà une bonne nouvelle !

    Par contre avec l'explication du post #57, l'usine est toute proche !
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  19. #59
    Invité
    Invité(e)
    Par défaut Bonjour Marc
    je ne suis pas tout à fait d'accord, sur ce serrait mieux avec Access mais la gestion dans les formulaire serait similaire et de toute façon ce qu'il voie là ne serra plus à voir!

    sur le postula du départ, il était question d'un fichier par utilisateurs et une moulinette qui fait converger les datas des utilisateur vers un fichier central (synchronisation) voila une belle usine à gaz nous venons de lui retire quelques tubulures!

    et personnellement entre le where de Sql et le Find d'excel il n'y a pas photo!
    Dernière modification par AlainTech ; 11/09/2014 à 08h11. Motif: Suppression de la citation inutile

  20. #60
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2011
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2011
    Messages : 571
    Points : 93
    Points
    93
    Par défaut
    Salut rdurupt et le forum

    Je m'excuse pour le temps pour le retour.
    si tu configure ton classeur excel en mode partagé, les 2 machines pourront lire et écrire sur le même fichier. sauf que les valeur ne seront visible aux autre utilisateur qu'un foie les données enregistré et je ne suis pas sur qu'il ne doivent pas fermer et ré-ouvrir leur fichier pour voir les modification.

    donc configure ton fichier en partagé et test sur 2 machine.
    Je viens de réaliser cela et avec 3 collègues de poste différent, nous avons procédés aux tests et pour le moment tout s'est bien déroulé.
    pour assurer une unicité des données nous devons vérifier cette unicité par une requête. et là on revient à ta question! nous devons faire un requête de sélection:
    A vrai dire j'ai pas bien compris cette partie de l'explication pour bien utiliser les 2 premiers codes.
    Le premier doit-il être affecté à un bouton de mon usf et le second dans un module?
    Quant au 3è code je vais le tester et vous revenir.
    Autre chose:
    'Les données doivent être indiquées dans le même ordre que les champs dans la base de données.
    Dans ce cas je pense que je dois décomposer les données de ma feuille "BASE_DE_DONNEES" en plusieurs feuilles. Par feuille je vais regrouper les entêtes de champs correspondants à un usf.
    Exemple: mon usf1 est fait pour alimenter les 6 premières cellules (A:F). Je croyais qu'un autre usf pourrait alimenter la suite des champs mais vu cette condition "Les données doient être indiquées dans.....dans la base de données"
    Si mon raisonnement n'est pas vrai merci de me le signaler.
    Encore merci pour votre disponibilité.
    Je remercie aussi les bonnes volontés pour leurs apports
    Je vais

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 4 PremièrePremière 1234 DernièreDernière

Discussions similaires

  1. Copier des données d'un fichier vers un autre sans écraser le second
    Par jalons dans le forum Shell et commandes GNU
    Réponses: 10
    Dernier message: 09/04/2013, 20h07
  2. [XL-2003] Bouton pour transférer des données d'un fichier Excel vers un autre
    Par Alfred23 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 07/09/2011, 16h46
  3. Transférer des données d'une base vers une autre
    Par benyamin139 dans le forum JDBC
    Réponses: 15
    Dernier message: 18/04/2011, 11h08
  4. [XL-2003] Transférer des données d'un fichier dans un autre et Renommer le fichier
    Par sylviobarca dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 02/03/2011, 14h19
  5. Réponses: 4
    Dernier message: 25/01/2007, 13h38

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