Bonjour,
J'ai un petit soucis de code et je ne vois pas le pb.
En cliquant sur un bouton d'un classeur1, je voudrais qu'un second classeur s'ouvre sur un onglet spécifique (du nom de la cellule B10 du premier classeur), remplisse certains champs de celui-ci, puis passe à un autre onglet (du nom de la cellule B11 du premier classeur) pour faire exactement les même insertion.
pour ce faire, je stocke les valeurs de B10 et B11 dans un tableau et je crée une boucle sur celui-ci.
Mon problème, c'est que j'ai le message d'erreur "incompatibilité de type" sur l'ouverture du second classeur et je ne comprend pas pourquoi:
With Workbooks.Open(chem(0) & "\" & fichier).Worksheets(Com(l))
Un msgbox sur "Com(0)" et "Com(1)" me retourne bien mes valeurs ...
Mon code:
Sub comm()
Dim Chemin$, fichier$, dateact As Range, Copie(4), i%, j%, l%, chem(1), Co%
chem(0) = ThisWorkbook.Sheets("Présentation et paramêtres").Range("B24")
fichier = "comm tableau.xlsm"
With ThisWorkbook.Worksheets("Clients")
Com = Array(Range("B10"), Range("B11"))
Copie(0) = .Range("B4")
For i = 1 To 4
Copie(i) = ""
Next i
End With
If Range("B11").Value <> "" Then
For l = 0 To UBound(Com)
j = Month(Date) - 1
Application.ScreenUpdating = False
With Workbooks.Open(chem(0) & "\" & fichier).Worksheets(Com(l))
Set dateact = .Range("B6:F13").Offset(j * 12)
End With
With dateact
For j = 1 To 8
For i = 1 To 5
If .Cells(j, i) <> "" Then Exit For
Next i
If i > 5 Then i = j: Exit For
Next j
If j > 8 Then
MsgBox "La plage est pleine !", vbCritical, "Erreur"
Exit Sub
End If
.Rows(i) = Copie
End With
Next
ActiveWorkbook.Save
ActiveWorkbook.Close
Merci pour votre aide