Export de données excel vers access

franciszen

XLDnaute Nouveau
Bonsoir, voila le problème sur une feuille excel j'ai 5 cellules A2:E2 sur lesquelles je teste toutes les combinaisons possibles de 1 à 10 par cellules et qui me génèrent des résultats F2:M2, j'utilise une macro de Yohan (voir fichier joins) tout marche bien avec le fichier test car les résultats sont fictifs et il m'affiche les 161 052 lignes en moins de 2 minutes, que du bonheur me direz-vous sans doute, mais je dois augmenter le nombre de cellules et passer de 5 cellules à 10 cellules alors le nombre de combinaisons va dépasser la capacité du fichier excel qui est de plus de 1 000 000 de lignes.
L'idée serait de générer les combinaisons une à une et d'envoyer sur access les résultats ou d'autres suggestions pour générer et enregistrer ces résultats
D'avance merci
Bonne soirée
Francis
 

Pièces jointes

  • TEST_COMBINAISONS.xlsm
    242.9 KB · Affichages: 63
  • TEST_COMBINAISONS.xlsm
    242.9 KB · Affichages: 71
  • TEST_COMBINAISONS.xlsm
    242.9 KB · Affichages: 69

Dedekind

XLDnaute Nouveau
Re : Export de données excel vers access

Bonjour,

Tu pourrais exécuter ta macro sur access en ajoutant un recordset pour enregistrer les résultats au fur et à mesure. Je ne peux pas t'écrire le code dans la mesure où je ne peux pas télécharger de fichier Excel au bureau ^^.

Copie colle moi le code de ta macro si tu veux.

Bonne journée
 

franciszen

XLDnaute Nouveau
Re : Export de données excel vers access

Bonjour voici le code, d'avance merci pour l'aide


Sub teste()
Application.ScreenUpdating = False
Dim curseur1 As Integer, curseur2 As Integer, curseur3 As Integer, curseur4 As Integer, curseur5 As Integer
Dim i As Long
Worksheets("Feuil1").Select
i = 3
For curseur1 = 0 To 10
For curseur2 = 0 To 10
For curseur3 = 0 To 10
For curseur4 = 0 To 10
For curseur5 = 0 To 10
' ecrite les différentes possibilitéer dans les cases A2:D2
Range("A2").Formula = curseur1
Range("B2").Formula = curseur2
Range("C2").Formula = curseur3
Range("D2").Formula = curseur4
Range("E2").Formula = curseur5
'récupère les résultats il auront eut le temps de ce calculer s'il sont calculer par une macro appelle là
resultat1 = Range("F2").Value
resultat2 = Range("G2").Value
resultat3 = Range("H2").Value
resultat4 = Range("I2").Value
resultat5 = Range("J2").Value
resultat6 = Range("K2").Value
resultat7 = Range("L2").Value
resultat8 = Range("M2").Value
'on transmet aux lignes suivantes les résultats et les valeurs des curseurs
Range("A" & i).Formula = curseur1
Range("B" & i).Formula = curseur2
Range("C" & i).Formula = curseur3
Range("D" & i).Formula = curseur4
Range("E" & i).Formula = curseur5
Range("F" & i).Formula = resultat1
Range("G" & i).Formula = resultat2
Range("H" & i).Formula = resultat3
Range("I" & i).Formula = resultat4
Range("J" & i).Formula = resultat5
Range("K" & i).Formula = resultat6
Range("L" & i).Formula = resultat7
Range("M" & i).Formula = resultat8
i = i + 1
Next curseur5
i = i + 1
Next curseur4
i = i + 1
Next curseur3
i = i + 1
Next curseur2
i = i + 1
Next curseur1
End Sub
 

Dedekind

XLDnaute Nouveau
Re : Export de données excel vers access

Salut, alors ne sachant pas les résultats que tu veux dans tes colonnes de résultats je t'ai fais le code pour les 5 premières colonnes.

Sur Access, pour une table "Comb" et des colonnes A B C D E, ça donne :

Option Compare Database

Sub teste()

Dim curseur1 As Integer, curseur2 As Integer, curseur3 As Integer, curseur4 As Integer, curseur5 As Integer
Dim oRst As DAO.Recordset
Dim oDb As DAO.Database

For curseur1 = 0 To 10
For curseur2 = 0 To 10
For curseur3 = 0 To 10
For curseur4 = 0 To 10
For curseur5 = 0 To 10


Set oDb = CurrentDb
Set oRst = oDb.OpenRecordset("Comb", dbOpenTable)
oRst.AddNew
oRst.Fields("A").Value = curseur1
oRst.Fields("B").Value = curseur2
oRst.Fields("C").Value = curseur3
oRst.Fields("D").Value = curseur4
oRst.Fields("E").Value = curseur5
oRst.Update
oRst.Close
oDb.Close
Set oRst = Nothing
Set oDb = Nothing


Next curseur5
Next curseur4
Next curseur3
Next curseur2
Next curseur1
End Sub


Je l'ai exécuté ça marche.


Bonne journée

Edit : je ne suis pas un expert en DAO, il y a peut être plus propre.. mais bon ça marche et ça ne prend pas si longtemps que ça. Et pense bien à mettre le bon type de donnée pour les colonnes sinon tu risques de faire envoyer bouler ^^.

Edit 2 : tu peux remplir ta DB avec ma procédure, puis ajouter des champs calculés pour tes résultat par la suite, tu n'es pas obligé de modifier le code
 
Dernière édition:

franciszen

XLDnaute Nouveau
Re : Export de données excel vers access

Merci pour ton code, mais en access j'ai des lacunes, Il faut bien que je lie mon fichier excel "TEST_COMBINAISONS" Feuil1 à ACCESS avec une table que je nomme Comb puis je crée un module je copie ton code dedans et je lance ok j'ai une erreur
Set oRst = oDb.OpenRecordset("Comb", dbOpenTable), je dois mal m'y prendre!!!!!
 

Dedekind

XLDnaute Nouveau
Re : Export de données excel vers access

Non non pas besoin de ton fichier Excel. Ma procédure sert justement à remplir la table Comb.

En PJ la table vide avec le module VBA qui va bien. Tu as juste à exécuter la procédure pour remplir ta base (prend un petit peu de temps)
 

Pièces jointes

  • Comb vide.zip
    19 KB · Affichages: 67

franciszen

XLDnaute Nouveau
Re : Export de données excel vers access

Ok ca marche, mais pour les résultats c'est pas la même limonade, car mes résultats sont liés à plusieurs feuilles excel et lorsque on fait varier un des curseurs les résultats changent dans les cellules F2: M2 il faut donc absolument que je sois lié avec execl pour les résultats, j'espère avoir été assez clair, merci encore de ton aide
 

Discussions similaires

Réponses
9
Affichages
230
Réponses
7
Affichages
405

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 979
dernier inscrit
bderradji