Problème fonction application.transpose sur Access

Résolu
AstraLife Messages postés 98 Date d'inscription   Statut Membre Dernière intervention   -  
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai une ligne de code qui me pose problème, elle fonctionne sous Excel mais je souhaite l'adapter sur Access, et j'ai un message d'erreur sur <Transpose>, (Membre de méthode ou de données introuvable).

La ligne de code d'Excel :

feuille.Range("A1").Resize(UBound(base_fichiers, 2), UBound(base_fichiers, 1)) = Application.Transpose(base_fichiers)




Mon code Access :

Private Sub Commande183_Click()

Dim base_fichiers()

Dim oDb As DAO.Database
Dim oRst As DAO.Recordset
Dim Rep_Motam As String


Set oDb = CurrentDb
Set oRst = oDb.OpenRecordset("R_Repertoire")

Rep_Motam = oRst![Rep_Motam]

fichier = Dir(Rep_Motam)

i = 1
While fichier <> ""
ReDim Preserve base_fichiers(5, i)

If Right(fichier, 9) = "MOTAM.csv" Then

base_fichiers(1, i) = fichier
ma_date = DateSerial(Left(fichier, 4), Mid(fichier, 5, 2), Mid(fichier, 7, 2))

base_fichiers(2, i) = Format(ma_date, "mm/dd/yyyy")
base_fichiers(3, i) = Format(ma_date, "ww", vbMonday, vbFirstFullWeek)

base_fichiers(5, i) = Rep_Motam & fichier

'corrige 1ere semaine - de 4 jours
correction = False
If Month(ma_date) = 1 And Format(ma_date, "ww", vbMonday, vbFirstFourDays) > 50 Then
 mon_annee_corrigee = Year(ma_date) - 1
 correction = True
End If

'corrige 1ere semaine + de 4 jours
If Month(ma_date) = 12 And Format(ma_date, "ww", vbMonday, vbFirstFourDays) < 5 Then
 mon_annee_corrigee = Year(ma_date) + 1
 correction = True
End If

If correction = False Then mon_annee_corrigee = Year(ma_date)

base_fichiers(4, i) = mon_annee_corrigee

i = i + 1
End If

oRst.Close: Set oRst = Nothing
oDb.Close: Set oDb = Nothing

fichier = Dir

Wend

Set oDb = CurrentDb
Set oRst = oDb.TableDefs("Liste_Fichiers_Enova").OpenRecordset

While Not oRst.EOF
  oRst.Delete
  oRst.MoveNext


feuille.Range("A1").Resize(UBound(base_fichiers, 2), UBound(base_fichiers, 1)) = Application.Transpose(base_fichiers)

Wend

End Sub









A voir également:

1 réponse

AstraLife Messages postés 98 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai essayé ceci mais toujours pas

DoCmd.RunCommand.Resize(UBound(base_fichiers, 2), UBound(base_fichiers, 1)) = acCmdPaste(base_fichiers)


en place de ceci

feuille.Range("A1").Resize(UBound(base_fichiers, 2), UBound(base_fichiers, 1)) = Application.Transpose(base_fichiers)
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

Vous voulez ecrire votre tableau dans quoi, une feuille Excel ou ??????
0
AstraLife Messages postés 98 Date d'inscription   Statut Membre Dernière intervention   > f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

Dans une base Access, je souhaite coller les données de mes variables (base_fichiers..) dans les champs de la table "Liste_Fichiers_Enova"

Cette procédure fonctionne parfaitement dans un classeur excel mais sur access c'est laborieux à consevoir
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,
Ben, c'est uniquement de l'Excel. Vous devez ecrire chaque champ de chaque enregistrement dans votre boucle While

Pourquoi n'ecrivez vous pas directement dans la table ald de faire un fichier????
0
AstraLife Messages postés 98 Date d'inscription   Statut Membre Dernière intervention   > f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention  
 
Oups j'avais peur de cela justement, les boucles c'est inédit pour moi mais j'adore :-)

Je vais tenter, je débute dans les recordset, pas évident.

Ma table comporte 5 champs qui seront toujours les mêmes, par contre les infos qui sont à y coller viennent des variables Base_fichiers décrites plus haut dans mon code et qui sont générées par les libellés des exports, ils peut y en avoir 400 des exports dans le répertoire, il faudra que je saute à la ligne dans la table pour chaque export. (1 ligne de 5 champs pour chaque export).

Pourriez vous m'indiquez juste à quel moment dans le code je dois boucler, je voudrais pour apprendre le réaliser moi même mais je n'ai aucune idée de la ou je dois commencer à boucler.
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,
Je vous fais un exemple en partant de votre code
0