Bonjour,
En réponse à un post, j'ai voulu adapter des posts de Pierre Fauconnier à la modification d'un tableau structuré à l'aide d'un formulaire.
J'ai commis une erreur lors de l'écriture du code, mais je n'arrive pas à voir où.
Voici les codes utilisés :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Function WriteData(Tablename As String, Index As Long, Map) Dim r As Long Dim i As Long Dim t As ListObject Set t = Range(Tablename).ListObject If Index Then r = Index Else r = t.ListRows.Add.Index For i = LBound(Map) To UBound(Map) Step 2 t.ListColumns(Map(i + 1)).DataBodyRange(r).Value = Range(Map(i)).Value Next i Set t = Nothing End FunctionLe message d'erreur :
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 Private Sub btnValid_Click() Dim Reponse As Integer Dim RecordNumber As Long Reponse = MsgBox("Désirez-vous sauvegarder les modifications ?", _ vbQuestion + vbYesNo + vbDefaultButton1, "CONFIRMATION MODIFICATION") RecordNumber = Range("_NumLigne") If Reponse = vbYes Then WriteData "t_Client", RecordNumber, VBA.Array(nom, "Nom", adresse, "Adresse", CP, "CP", ville, "Ville", telephone, "Téléphone", mail, "Mail", siret, "Siret") Unload Me Range("B2").Select ElseIf Reponse = vbNo Then Unload Me Range("B2").Select End If End Sub
Ligne en surbrillance :Erreur d'exécution '1004' :
La méthode 'Range' de l'objet '_Global' a échouéSi quelqu'un peut me mettre sur la bonne voie.
Code : Sélectionner tout - Visualiser dans une fenêtre à part t.ListColumns(Map(i + 1)).DataBodyRange(r).Value = Range(Map(i)).Value
D'avance, merci.
Bonne journée, cordialement.
Goube
Partager