Message d'erreur :
| Ceux qui reviennent le + souvent: 13 incompatibilité de type
**** Ce type d'erreur est fréquent. Je te donne un petit exemple
Dim X As Long
Dans une procédure, tu essaies d'attribuer une chaîne de caractères à la variable X
X = "Toto"
Cela génère le type d'erreur que tu soulignes. Évidemment, ce n'est qu'un exemple...
Attention, si tu ajoutes des données d'un champ de la table qui est vide... où qui n'a
pas le bon type de données...
| quand il ne trouve pas [Table]
**** La "table" doit exister dans ledit fichier du répertoire. Regarde dans le fichier exemple que
j'ai joint
comment cela fonctionne... Tout le code est commenté et il fonctionne très bien...même s'il
n'a pas
été testé exhaustivement!
| Quand les 2 fichiers sont sur le même répertoire, cela
**** Dans le fichier exemple que je t'ai fourni, tu peux déplacer le fichier de destination des
données
dans un autre répertoire et cela fonctionne très bien!
Est-ce possible que le chemin + le nom du fichier représente une chaîne de caractères trop
longue?
Dans le fichier exemple, j'ai utilisé ceci pour faire ce test : (les 2 fichiers ont la
version Excel 2003)
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=c:\Users\MichD\Documents\Base de données.xls;" & _
"Extended Properties=""Excel 8.0;HDR=YES;"""
Je peux difficilement en faire plus!
Un exemple non testé avec l'ouverture du fichier :
'-------------------------------------------------------
Sub test()
Dim Fichier As String, Feuille As String
Dim DerLig As Long, Wk As Workbook
Application.ScreenUpdating = False
Application.EnableEvents = False
Fichier = "c:\MonFichier.xlsm"
Feuille = "Données"
Set Wk = Workbooks.Open(Fichier)
With Wk
With .Worksheets(Feuille)
DerLig = .Range("A" & .Rows.Count).End(xlUp).Row + 1
'écrire les données que tu veux dans la feuille
.Range("A" & DerLig) = "X"
.Range("B" & DerLig) = "XX"
.Range("C" & DerLig) = "Y"
.Range("D" & DerLig) = "Z"
End With
End With
'Fermeture du classeur avec sauvegarde
Wk.Close True
Set Wk = Nothing
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
'-------------------------------------------------------