Incrémenter régulièrement un onglet EXCEL à partir d'une table ACCESS

Y compris Power BI, Power Query et toute autre question en lien avec Excel
S
Sidwel
Membre habitué
Membre habitué
Messages : 50
Inscrit le : 9 décembre 2014
Version d'Excel : 2007

Message par Sidwel » 19 février 2019, 15:47

Re,

Je ne sais pas si c'est une bonne nouvelle ou non mais j'ai le même message sans la date: "Resultats$A9" n'est pas un nom valide.. :(
Resultats$A9.PNG
Resultats$A9.PNG (7.28 Kio) Vu 70 fois

Pourquoi y a t'il le suffixe "$A9" qui se rajoute ?
Avatar du membre
i20100
Passionné d'Excel
Passionné d'Excel
Messages : 3'850
Appréciations reçues : 159
Inscrit le : 16 mars 2017
Version d'Excel : PC - 2010 FR

Message par i20100 » 19 février 2019, 15:49

re,

as-tu mis le ! avant le A ?
rng = NomFeuille & "!A" & n
S'il vous plaît, pas de messagerie personnelle pour vos questions. La réponse peut servir aux autres membres. Merci!
isabelle
S
Sidwel
Membre habitué
Membre habitué
Messages : 50
Inscrit le : 9 décembre 2014
Version d'Excel : 2007

Message par Sidwel » 19 février 2019, 16:14

oui il y est @I20100

Je te mets le code :


Option Compare Database

Sub Export_After_LastRow()
Dim Fichier As String, NomFeuille As String, texte_SQL As String, rng As String, n As Long
Dim cn As Object
Dim Rst As Object

Fichier = "C:\Users\...\VENTES.xlsx" 'à adapter
NomFeuille = "Resultats" 'à adapter

Set cn = New ADODB.Connection
With cn
.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
& Fichier & ";Extended Properties=""Excel 12.0;HDR=YES;"""
.Open
texte_SQL = "SELECT * FROM [" & NomFeuille & "$]"
Set Rst = New ADODB.Recordset
Rst.Open texte_SQL, cn, adOpenKeyset, adLockOptimistic
n = Rst.RecordCount + 2
' Rst.MoveLast
' rng = NomFeuille & "!" & Range("A" & Rst(0) + 2).Address
' rng = NomFeuille & "!A" & Rst(0) + 2

rng = NomFeuille & "!A" & n
.Close
End With

Export_VENTES Fichier, rng

End Sub

Function Export_VENTES(Fich, cellule)
On Error GoTo Export_VENTES_Err

DoCmd.TransferSpreadsheet acExport, 8, "Resultats", Fich, True, cellule

Export_VENTES_Exit:
Exit Function

Export_VENTES_Err:
MsgBox Error$
Resume Export_VENTES_Exit

End Function
Avatar du membre
i20100
Passionné d'Excel
Passionné d'Excel
Messages : 3'850
Appréciations reçues : 159
Inscrit le : 16 mars 2017
Version d'Excel : PC - 2010 FR

Message par i20100 » 19 février 2019, 17:32

re,

tu n'a pas essayer avec mon dernier envoi avec Rst.RecordCount
Sub Export_After_LastRow()
Dim Fichier As String, NomFeuille As String, texte_SQL As String, rng As String, n As Long
Dim cn As Object
Dim Rst As Object

Fichier = "C:\Users\isabelle\Documents\Test1\base2.xlsx"  'à adapter
NomFeuille = "Feuil1" 'à adapter

        Set cn = New ADODB.Connection
        With cn
            .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
            & Fichier & ";Extended Properties=""Excel 12.0;HDR=YES;"""
            .Open
            texte_SQL = "SELECT * FROM [" & NomFeuille & "$]"
            Set Rst = New ADODB.Recordset
            Rst.Open texte_SQL, cn, adOpenKeyset, adLockOptimistic
            n = Rst.RecordCount + 2
            rng = NomFeuille & "!A" & n
            .Close
        End With
Export_VENTES Fichier, rng
End Sub
S'il vous plaît, pas de messagerie personnelle pour vos questions. La réponse peut servir aux autres membres. Merci!
isabelle
S
Sidwel
Membre habitué
Membre habitué
Messages : 50
Inscrit le : 9 décembre 2014
Version d'Excel : 2007

Message par Sidwel » 19 février 2019, 17:45

Re,

Il me semble que si, j'ai bien la ligne avec Rst.RecordCount+2
n = Rst.RecordCount + 2

En fait j'avais mis les autres lignes en commentaire, je les ai carrément supprimé du coup. Mais j'ai tjs la même fenêtre qui s'affiche malheureusement.. :|


Sub Export_After_LastRow()
Dim Fichier As String, NomFeuille As String, texte_SQL As String, rng As String, n As Long
Dim cn As Object
Dim Rst As Object

Fichier = "C:\Users\...\VENTES.xlsx" 'à adapter
NomFeuille = "Resultats" 'à adapter

Set cn = New ADODB.Connection
With cn
.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
& Fichier & ";Extended Properties=""Excel 12.0;HDR=YES;"""
.Open
texte_SQL = "SELECT * FROM [" & NomFeuille & "$]"
Set Rst = New ADODB.Recordset
Rst.Open texte_SQL, cn, adOpenKeyset, adLockOptimistic
n = Rst.RecordCount + 2
rng = NomFeuille & "!A" & n
.Close
End With

Export_VENTES Fichier, rng

End Sub
Avatar du membre
i20100
Passionné d'Excel
Passionné d'Excel
Messages : 3'850
Appréciations reçues : 159
Inscrit le : 16 mars 2017
Version d'Excel : PC - 2010 FR

Message par i20100 » 19 février 2019, 17:57

re,

pourtant il devrait y avoir un ! dans la variable rng
regarde sur cette image lorsque je met le curseur sur la variable rng
Image
test_variable.png
S'il vous plaît, pas de messagerie personnelle pour vos questions. La réponse peut servir aux autres membres. Merci!
isabelle
S
Sidwel
Membre habitué
Membre habitué
Messages : 50
Inscrit le : 9 décembre 2014
Version d'Excel : 2007

Message par Sidwel » 20 février 2019, 08:37

Bonjour I20100,

J'ai vraiment repris à la lettre ton code, en copier-coller, et j'ai toujours la même fenêtre qui s'affiche :bof: ::~
Resultats$A9.PNG
Resultats$A9.PNG (7.28 Kio) Vu 53 fois
Est ce que de ton côté cela fonctionne ?

Option Compare Database

Sub Export_After_LastRow()
Dim Fichier As String, NomFeuille As String, texte_SQL As String, rng As String, n As Long
Dim cn As Object
Dim Rst As Object

Fichier = "C:\Users\...\VENTES.xlsx" 'à adapter
NomFeuille = "Resultats" 'à adapter

Set cn = New ADODB.Connection
With cn
.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
& Fichier & ";Extended Properties=""Excel 12.0;HDR=YES;"""
.Open
texte_SQL = "SELECT * FROM [" & NomFeuille & "$]"
Set Rst = New ADODB.Recordset
Rst.Open texte_SQL, cn, adOpenKeyset, adLockOptimistic
n = Rst.RecordCount + 2
rng = NomFeuille & "!A" & n
.Close
End With
Export_VENTES Fichier, rng
End Sub

Function Export_VENTES(Fich, cellule)

On Error GoTo Export_VENTES_Err

DoCmd.TransferSpreadsheet acExport, 8, "Resultats", Fich, True, cellule

Export_VENTES_Exit:
Exit Function

Export_VENTES_Err:
MsgBox Error$
Resume Export_VENTES_Exit

End Function
Avatar du membre
i20100
Passionné d'Excel
Passionné d'Excel
Messages : 3'850
Appréciations reçues : 159
Inscrit le : 16 mars 2017
Version d'Excel : PC - 2010 FR

Message par i20100 » 22 février 2019, 00:35

Bonjour Sidwel ,

j'ai essayé de reproduire le problème, mais sans succès,
je ne comprend pourquoi le ! se transforme en $
S'il vous plaît, pas de messagerie personnelle pour vos questions. La réponse peut servir aux autres membres. Merci!
isabelle
S
Sidwel
Membre habitué
Membre habitué
Messages : 50
Inscrit le : 9 décembre 2014
Version d'Excel : 2007

Message par Sidwel » 1 mars 2019, 14:43

Bonjour I20100

J'ai essayé d'avancer sur mon sujet..

Ce que je remarque c'est que quand j'enlève le "!" alors je n'ai pas de msg d'erreur mais ça ne fait pas le résultat attendu: ça prend ma table et ça la colle dans un nouvel onglet "ResultatsA20". Or je souhaite que ça incrémente mon onglet "Résultats" plutôt.. !!

Si quelqu'un peut m'aider..merci merci

Option Compare Database

Sub Export_After_LastRow()
Dim Fichier As String, NomFeuille As String, texte_SQL As String, rng As String, n As Long
Dim cn As Object
Dim Rst As Object

Fichier = "C:\Users\...\VENTES.xlsm" 'à adapter
NomFeuille = "Resultats" 'à adapter

Set cn = New ADODB.Connection
With cn
.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
& Fichier & ";Extended Properties=""Excel 12.0;HDR=YES;"""
.Open
texte_SQL = "SELECT * FROM [" & NomFeuille & "$]"
Set Rst = New ADODB.Recordset
Rst.Open texte_SQL, cn, adOpenKeyset, adLockOptimistic
n = Rst.RecordCount + 2
rng = NomFeuille & "A" & n --> est ce que je laisse le "!A" ou pas ::~
.Close
End With
Export_VENTES Fichier, rng
End Sub

Function Export_VENTES(Fich, cellule)
On Error GoTo Export_VENTES_Err

DoCmd.TransferSpreadsheet acExport, 8, "Resultats", Fich, True, cellule

Export_VENTES_Exit:
Exit Function

Export_VENTES_Err:
MsgBox Error$
Resume Export_VENTES_Exit

End Function
Avatar du membre
i20100
Passionné d'Excel
Passionné d'Excel
Messages : 3'850
Appréciations reçues : 159
Inscrit le : 16 mars 2017
Version d'Excel : PC - 2010 FR

Message par i20100 » 1 mars 2019, 17:00

re,

peux-tu essayer cette macro pour voir si le problème du ! subsiste toujours,
le résultat devrait être T_ResultatsNew!A100
Sub test1()
NomFeuille = "T_ResultatsNew" 'adapté
n = 100
Rng = NomFeuille & "!" & Range("A" & n).Address(0, 0)
MsgBox Rng
End Sub
S'il vous plaît, pas de messagerie personnelle pour vos questions. La réponse peut servir aux autres membres. Merci!
isabelle
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message