Problème fonction application.transpose sur Access

Résolu/Fermé
AstraLife Messages postés 98 Date d'inscription lundi 2 octobre 2017 Statut Membre Dernière intervention 1 juillet 2019 - Modifié le 23 août 2018 à 09:02
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 - 23 août 2018 à 15:21
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 lundi 2 octobre 2017 Statut Membre Dernière intervention 1 juillet 2019
22 août 2018 à 11:02
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 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
22 août 2018 à 11:20
Bonjour,

Vous voulez ecrire votre tableau dans quoi, une feuille Excel ou ??????
0
AstraLife Messages postés 98 Date d'inscription lundi 2 octobre 2017 Statut Membre Dernière intervention 1 juillet 2019 > f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024
Modifié le 22 août 2018 à 11:34
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 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié le 22 août 2018 à 11:44
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 lundi 2 octobre 2017 Statut Membre Dernière intervention 1 juillet 2019 > f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024
Modifié le 22 août 2018 à 11:50
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 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié le 22 août 2018 à 16:16
Re,
Je vous fais un exemple en partant de votre code
0