Bonjour la communauté,

J'ai un petit problème dans un macro. Celui-ci est censé d'abord comparé des données du "transac2.xlsm" avec un autre workbook "Suivi CS_TEST.xlsx" qui lui est partagé et puis rajouter une date dans ce même dossier partagé. L'erreur que je trouve est la suivante:
Application-defined or object-defined error.

Le Workbooks("transac2.xlsm") a trois colonnes de base:
Data (A:A), Date (B:B) et Entreprise (C:C).
Le Workbooks("Suivi CS_TEST.xlsx") en a plein, dont:
Data (+ stuff) (E:E), Date (S:S).

Le code est très brut, car je n'ai pas d'expérience, encore moins de fichier partagé. J'avais fait des tests entre deux fichiers, d'une feuille chacun, non-partagés et ça marchait...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Sub TransacJulien()
On Error GoTo Errorcatch
Dim wCPMF2018 As Workbook
Dim wtransac2 As Workbook
Set wCPMF2018 = GetObject("G:\Suivi CS_TEST.xlsx")
Set wtransac2 = Workbooks("transac2.xlsm")
wCPMF2018.Windows(1).Visible = True
wCPMF2018.Worksheets("Julien").Select
Dim a As Integer
Dim i As Integer
Dim j As Integer
a = wtransac2.Worksheets("Macro").Range("a1", Range("a1").End(xlDown)).Count
'compte le nombre de ligne dans le fichier transac2
For i = 1 To a
For j = 1 To 100
wtransac2.Worksheets("Macro").Cells(j + 1, 20) =Right(Replace(wCPMF2018.Worksheets("Julien").Cells(j + 1, 5), " ", ""), 15)
'crée une copie des Data du fichier CS_TEST épuré du texte inutile
Next j
Next i
For i = 1 To a
For j = 1 To 100
If wtransac2.Worksheets("Macro").Cells(i + 1, 1) = wtransac2.Worksheets("Macro").Cells(j + 1, 20) Then
'teste les Data ainsi récolté du fichier CS_TEST face aux Data disponible à la base dans le fichier transac2
wtransac2.Worksheets("Macro").Cells(j + 1, 21) = wtransac2.Worksheets("Macro").Cells(i + 1, 1)
'si ces données sont identiques, les Data transac2 sont copiées en laissant les espaces adéquats vis-à-vis des données épurées.
If IsEmpty(wCPMF2018.Worksheets("Julien").Cells(j + 1, 19)) = True And IsEmpty(wtransac2.Worksheets("Macro").Cells(j + 1, 21)) = False Then
wCPMF2018.Worksheets("Julien").Cells(j + 1, 19) = wtransac2.Worksheets("Macro").Cells(i + 1, 2)
'copie ainsi la date en fonction de l'ordre ainsi trouvé plus haut en faisant attention que la cellule Date dans CS_TEST soit au préalable vide.
wtransac2.Worksheets("Macro").Cells(i + 1, 4) = "La date de la première transaction de " & wtransac2.Worksheets("Macro").Cells(i + 1, 3) & " a été copiée dans la feuille de Julien."
'Un message qui s'affiche pour expliciter quelle feuille a reçu une Date (normalement plusieurs feuilles sont à prévoir.
Else
If IsEmpty(wtransac2.Worksheets("Macro").Cells(i, 6)) = True And IsEmpty(wCPMF2018.Worksheets("Julien").Cells(j + 1, 19)) = False Then
wtransac2.Worksheets("Macro").Cells(i + 1, 4).Value = "La cellule n'est pas vide"
'ce qui est écrit dans un cas contraire
End If
End If
End If
Next j
Next i
Errorcatch:
MsgBox Err.Description
End Sub
Désolé à ceux qui penserait que je n'ai rien à faire ici. Je ne fait pas exprès.
Par ailleurs, il y a probablement d'autres erreurs.