Petit souci pour export données VBA EXCEL

Talzatior

Nouveau membre
Bonjour à tous ;)

J'explose mon obstacle actuel ... j'ai une feuille dun de mes fichiers, une facture pour être plus précis, dont je souhaite exporter quelques données dans un classeur d'archives ...

J'ai pratiquement réussi, mais je bute sur un obstacle ... Je vous présente dans un premier temps le code usité :

[cpp]Sub ArchiveFact()
Dim conn As Object
Dim requete As Object
Dim fact_num As Long
Dim fact_date As Date
Dim cmd_num As String
Dim cmd_date As Date
Dim nom_clt As String
Dim ech_date As Date
Dim tot_HT As Double
Dim texte_SQL As String
Dim classeur As String
Dim fichier As String

Sheets("Facture").Activate

'collecte les infos de la facture
fact_num = Range("A14")
fact_date = Range("A16")
cmd_num = CStr(Range("C16"))
cmd_date = Range("D16")
nom_clt = CStr(Range("F9"))
ech_date = Range("H16")
tot_HT = Range("F43")

'connexion à la base dans fichier archives.xls
classeur = "Archives_test.xls"
fichier = ThisWorkbook.Path & "\" & classeur
Set conn = CreateObject("ADODB.Connection")
conn.Open "Provider = Microsoft.Jet.OLEDB.4.0;" & _
"data source=" & fichier & ";" & _
"extended properties=""Excel 8.0;"""

' travail demandé: insère dans les champs de "Archives_fact" les données collectées
texte_SQL = "INSERT INTO Archives_fact (num_fact,date_fact,num_cmd,date_cmd,nom_clt,tot_HT,ech_date) VALUES ('" & (fact_num) & "','" & (fact_date) & "', '" & (cmd_num) & "','" & (cmd_date) & "','" & (nom_clt) & "','" & (ech_date) & "','" & (tot_HT) & "')"
' éxécute le travail demandé
Set requete = CreateObject("ADODB.recordset")
Set requete = conn.Execute(texte_SQL)

Set requete = Nothing
Set conn = Nothing

MsgBox "archivage de la facture n° " & fact_num & " effectué avec succès"

End SubCordialement.

[/cpp]

Il fonctionne bien ;) presque parfaitement ;)
Mon souci est le suivant : pour la première facture exportée, pas de souci, tout roule ;)
Par contre pour la seconde, il me sort une erreur :
"Erreur d'exécution '-2147467259 (80004005)' :
Impossible d'agrandir la plage nommée."

J'ai regardé d'où cela pouvait venir, et en fait, il s'agit de la plage de données définie par "Archives_fact" dans ma ligne de sql ... en effet, si je veux que ce code fonctionne, je n'ai d'autre choix, pour le moment, que d'ouvrir après chaqeu enregistrement le classeur cible et de redéfinir ma plage de données ...

Existerait-il un moyen pour que cette plage de données s'étende d'une ligne en plus à chaque enregistrement ?

Je m'explique : J'aimerai savoir si :
[cpp]ActiveWorkbook.Names.Add Name:="ex", RefersToR1C1:="=Feuil1!R1C1:R7C7"[/cpp]
peut être programmé pour qu'à chaque ajout d'une ligne dans le classeur archive, RefersToR1C1:="=Feuil1!R1C1:R7C7" devienne RefersToR1C1:="=Feuil1!R1C1:R7(+1)C7(+1)" ???

Merci à vous par avance ...
Talzatior.
A très bientôt ;)
Cordialement,
 

Talzatior

Nouveau membre
Je ne sais pas si j'ai fait quelque chose de travers, mais je vois que je suis le seul à n'avoir aucune réponse depuis quasi 24h ...

Si jamais vous ne pensez pas que cela soit possible, ou alors si j'avais fait quelque chose de travers, tenez m'en informé, ce serait sympa ...

Merci à tous,
A plus tard .
 

zeb

Modérateur
Salut Talzatior,

Désolé, je prends un peu de vacances et ne suis pas constamment en ligne, en laissant l'occasion à d'autres l'opportunité d'aider en VB. Bon, je constate que personne ne prend cette initiative :/

Bon, je prends du temps pendant le bal des pompiers pour regarder ça, si c'est toujours d'actualité (c'est quoi ta zone "ex" ?)
 

Talzatior

Nouveau membre
En fait j'ai trouvé une solution alternative entre temps à ce souci ;)
Je te remercie tout de même pour ta réponse :)
Pour ma part, c'est les vacances également, donc j'avais à terminer mon fichier avant mes congés, j'ai donc opté pour un système qui cherche la première ligne dispo dans mon classeur cible et la complète comme voulu ;)

Quand je serai de retour, si cela vous tente, je vous mettrai le code en ligne ;)

Bonnes vacances, à bientôt ;)
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 128
Messages
6 717 845
Membres
1 586 373
Dernier membre
https://forum.tomshardwar
Partager cette page
Haut