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 :

Exporter Excel vers access [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué Avatar de Superpat9999
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2003
    Messages
    433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 433
    Points : 188
    Points
    188
    Par défaut Exporter Excel vers access
    Bonjour,
    Auparavant j'exportais un montant Excel vers Access dans un champ unique; je remplaçais à chaque fois le montant précédent, ligne 16 17 18.
    Mon code :
    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
          Sub Y2_ExporterVersAccessExcelSoldeBanque()
              Dim Repertoire As String
              Dim Fichier As String
              Dim MonFichierAccess As Database
              Dim MaTableDansAccess As DAO.Recordset
              Fichier = "Courant_14-1.accdb"
     
     
    11        Repertoire = "D:\Dropbox\Access\Travail\"
    13        Set MonFichierAccess = OpenDatabase(Repertoire & Fichier)
    14        Set MaTableDansAccess = MonFichierAccess.OpenRecordset("t_Compte", dbOpenTable)
    15        Worksheets("Access").Activate
                  MaTableDansAccess.Edit
     
    16            MaTableDansAccess.Delete
    17            MaTableDansAccess.AddNew
    18            MaTableDansAccess.Fields("SoldeBanque") = Range("StatementSoldeBanque").Value
    19            MaTableDansAccess.Update
    20    MaTableDansAccess.Close
    21    MonFichierAccess.Close
          End Sub
    J'ai modifié mon fichier Access et j'ai ceci, je ne peux plus faire ce que je faisais :
    Nom : Banque.gif
Affichages : 144
Taille : 17,5 Ko
    Je veux qu'il remplace la somme du SoldeBanque d'après ID_CompteFK=1 ou autre nombre que je donne dans Excel.
    Merci de votre aide
    Le mieux est l'ennemi du bien

  2. #2
    Membre habitué
    Homme Profil pro
    Gestionnaire de projet dans le BTP
    Inscrit en
    Janvier 2017
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Gestionnaire de projet dans le BTP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Janvier 2017
    Messages : 86
    Points : 134
    Points
    134
    Par défaut
    Il faut d'abord sélectionner le bon enregistrement.
    Lorsque le code est dans Access :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        NumeroEnregistrement = 2 ' Celui qu'on vise
        MaTable.FindFirst "[ID_CompteFK] = " & NumeroEnregistrement
        MaTable.Edit
        ' Etc ...
    Ca devrait marcher dans Excel.

  3. #3
    Membre habitué Avatar de Superpat9999
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2003
    Messages
    433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 433
    Points : 188
    Points
    188
    Par défaut
    Merci Doaryn pour ta eéponse, malheureusement, cela ne fonctionne pas :

    Nom : recherche.gif
Affichages : 118
Taille : 27,3 Ko
    Le mieux est l'ennemi du bien

  4. #4
    Membre habitué
    Homme Profil pro
    Gestionnaire de projet dans le BTP
    Inscrit en
    Janvier 2017
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Gestionnaire de projet dans le BTP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Janvier 2017
    Messages : 86
    Points : 134
    Points
    134
    Par défaut
    Dommage
    Il faut trouver un autre moyen pour atteindre le bon enregistrement. Je n'ai jamais attaqué Access depuis un fichier Excel, je fais l'inverse.

  5. #5
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 419
    Points : 2 178
    Points
    2 178
    Par défaut
    Bonjour,
    Il faut utiliser filter et tester eof!

  6. #6
    Membre habitué Avatar de Superpat9999
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2003
    Messages
    433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 433
    Points : 188
    Points
    188
    Par défaut
    Merci à tous, j'ai trouvé :
    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
          Sub ExporterVersAccessExcelSoldeBanque()
              Dim Repertoire As String
              Dim Fichier As String
              Dim MonFichierAccess As Database
              Dim MaTableDansAccess As DAO.Recordset
              Dim NumeroEnregistrement As Long
              Dim LgSoldeBanque As Double
              Dim LgID_CompteFK As Long
              Dim NbEnreg As Long
              Dim NbPrem As Long
              Fichier = "Courant_15.accdb"
    10        NomProcedure = "ExporterVersAccessExcel"
    11        Repertoire = "D:\Dropbox\Access\Travail\"
    13        Set MonFichierAccess = OpenDatabase(Repertoire & Fichier)
    14        Set MaTableDansAccess = MonFichierAccess.OpenRecordset("t_Compte", dbOpenTable)
              NumeroEnregistrement = 1 ' Celui qu'on vise
    15        Worksheets("Access").Activate
              NbEnreg = MaTableDansAccess.RecordCount
              For NbPrem = 1 To NbEnreg
                  LgID_CompteFK = MaTableDansAccess.Fields("ID_CompteFK")
                  If LgID_CompteFK = NumeroEnregistrement Then
                      LgSoldeBanque = MaTableDansAccess.Fields("SoldeBanque")
                      Debug.Print LgID_CompteFK
                      Debug.Print LgSoldeBanque
                      MaTableDansAccess.Edit
    18                MaTableDansAccess.Fields("SoldeBanque") = Range("StatementSoldeBanque").Value
    19                MaTableDansAccess.Update
                  End If
                  MaTableDansAccess.MoveNext
    22        Next NbPrem 'Incrémente de 1
    20        MaTableDansAccess.Close
    21        MonFichierAccess.Close
          End Sub
    Le mieux est l'ennemi du bien

  7. #7
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 419
    Points : 2 178
    Points
    2 178
    Par défaut
    bonjour,
    si ta table contient 1GO de données tu vas attendre un mois pour parcourir tous les enregistrements?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Set MaTableDansAccess = MonFichierAccess.OpenRecordset("t_Compte", dbOpenTable)
    MaTableDansAccess.Filter = "[ID_CompteFK]=" & NumeroEnregistrement
    If Not MaTableDansAccess.EOF Then
        MaTableDansAccess.Edit
        MaTableDansAccess.Fields("SoldeBanque") = Range("StatementSoldeBanque").Value
        MaTableDansAccess.Update
    End If
    Code Autre possibilité : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Set MaTableDansAccess = MonFichierAccess.OpenRecordset(" select * from t_Compte where [ID_CompteFK]=" & NumeroEnregistrement)
     
    If Not MaTableDansAccess.EOF Then
        MaTableDansAccess.Edit
        MaTableDansAccess.Fields("SoldeBanque") = Range("StatementSoldeBanque").Value
        MaTableDansAccess.Update
    End If

  8. #8
    Membre habitué Avatar de Superpat9999
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2003
    Messages
    433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 433
    Points : 188
    Points
    188
    Par défaut
    Merci Thumb down de ta correction.
    Je m'améliore à chaque fois avec vos conseils. Là j'avais que 3 lignes.
    Le mieux est l'ennemi du bien

  9. #9
    Membre habitué Avatar de Superpat9999
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2003
    Messages
    433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 433
    Points : 188
    Points
    188
    Par défaut
    Citation Envoyé par Thumb down Voir le message
    bonjour,
    si ta table contient 1GO de données tu vas attendre un mois pour parcourir tous les enregistrements?
    Bonjour, je reviens vers toi, le premier exemple ne fonctionne pas, toujours le même problème qu'avec Doatyn.

    Nom : Solde2.gif
Affichages : 112
Taille : 30,5 Ko

    Mais heureusement le second exemple est parfait et fonctionne correctement.
    Le mieux est l'ennemi du bien

  10. #10
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 419
    Points : 2 178
    Points
    2 178
    Par défaut
    Bonjour,
    désolé mais le principal c'est d'avoir la solution!

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

Discussions similaires

  1. [AC-2010] Export excel vers Access - Format BDD non reconnu
    Par moctarim dans le forum VBA Access
    Réponses: 0
    Dernier message: 02/10/2013, 14h21
  2. VBA Export Excel vers Access
    Par rabihm81 dans le forum VBA Access
    Réponses: 2
    Dernier message: 26/05/2009, 13h54
  3. Exportation excel vers Access
    Par Jesus-comes-back dans le forum VBA Access
    Réponses: 1
    Dernier message: 15/07/2008, 09h51
  4. Pb Exportation Excel vers Access
    Par whykiki dans le forum VBA Access
    Réponses: 1
    Dernier message: 06/07/2008, 16h56
  5. Exportation d'un fichier excel vers Access
    Par Alkemist dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/01/2006, 16h37

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