Problème fonction application.transpose sur Access
Résolu
AstraLife
Messages postés
99
Statut
Membre
-
f894009 Messages postés 17417 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17417 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 :
Mon code Access :
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
1 réponse
-
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)-
-
-
-
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. -
-