Bonjour voici mon cas.

Un mini répertoire téléphonique ciblant un tableau structuré TabChauffeurs faisant appel à un Userform UFChauffeurs

Dans un userform j'ai 3 textbox (TB) qui récupèrent prénom, nom et Tel (ordre des colonnes du TabChauffeurs)
1 combobox, alimenté par la colonne prénom du tableau, qui permet de choisir une entrée déjà dans le tableau
Chaque entrée a un index affecté automatique par une formule dans la cellule index que voici A l'activation du userform la variable IndexChauff est mise à 0

Deux possibilités
A. choisir une personne présente dans le TabChauffeur via la combobox qui va donner la valeur à la variable IndexChauff
B. inscrire une nouvelle entrée du coup l'indexchauff est toujours à 0

On valide et voici le process

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
Private Sub CBValider_Click()
Dim dl As Integer
    If IndexChauff = 1 Then
            Unload UFChauffeur
 
    ElseIf IndexChauff = 0 Then
            dl = [TabChauffeurs].Rows.Count + 1
            ActiveWorkbook.Worksheets("Listes").ListObjects("TabChauffeurs").DataBodyRange(dl, 1) = TBPrenom.Value
            ActiveWorkbook.Worksheets("Listes").ListObjects("TabChauffeurs").DataBodyRange(dl, 2) = TBNom.Value
            ActiveWorkbook.Worksheets("Listes").ListObjects("TabChauffeurs").DataBodyRange(dl, 3) = Format(TBTel.Value, "00 00 00 00 00")
            Unload UFChauffeur
    Else
            Sheets("Listes").ListObjects("TabChauffeurs").DataBodyRange(IndexChauff, 1) = TBPrenom.Value
            Sheets("Listes").ListObjects("TabChauffeurs").DataBodyRange(IndexChauff, 2) = TBNom.Value
            Sheets("Listes").ListObjects("TabChauffeurs").DataBodyRange(IndexChauff, 3) = Format(TBTel.Value, "00 00 00 00 00")
            Unload UFChauffeur
    End If
End Sub
j'ouvre le classeur je crée une nouvelle entrée tout va bien le userform se ferme et je vois bien dans le tableau la nouvelle entrée.
Je refais le process plantage erreur sur la ligne 8 avec le message " la méthode DataBodyRange a échouée"...
Si je regarde le tableau il a bien écrit la cellule...

C'est en liaison avec le reste du classeur car si j'isole dans un nouveau classeur la procédure ci dessus avec juste le tableau cela fonctionne parfaitement....