Mise à jour de données dans un tableau (VBA)

Bonjour,

Je souhaiterais trouver un moyen de pouvoir actualiser des données dans un tableau.

Dans le fichier, j'ai :

- Un onglet "Formulaire - planification" : Permet de rentrer de la donnée dans un tableau --> OK

- Un onglet "Formulaire - Modifier" : Permet de

  • rechercher un audit dans une liste et affiche les informations correspondantes --> OK
  • Mettre à jour les données dans le tableau les données actualisés --> NOK

- Un onglet "Planning" : Tableau récapitulatif avec toutes les données

J'ai essayé plusieurs methodes, mais sans succès...

Voici ma dernière tentative :

--> Bouton présent sur la feuille "Formulaire - modifier"

Sub Modifier()
'
' Macro1 Macro
'
Dim CellFind As Range

'On recherche la ligne correspondante au numéro de document
Set CellFind = Sheets("Planning").Range("Tableau4[concatener]").Find(Range("B3").Value, xlValues, xlWhole)

'Copie les valeurs de la ligne 2 dans le tableau
CellFind.Resize(, 7).Value = Range("G2:AF2").Value

End Sub

mais j'ai toujours des erreurs.

Pouvez-vous m'aider ?

Cordialement

Bonjour Ardoudoux, bonjour le forum,

Le code ci-dessous fonctionne uniquement si tu n'as pas de doublons dans la colonne A (ce qui n'est pas le cas dans ton exemple) :

Sub ModifR()
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim TS As ListObject 'déclare la variable TS (Tableau Strucruré)
Dim PL As Range 'déclare la variable PL (PLage)
Dim R As Range 'déclare la variable R (Recherche)
Dim LR As Integer 'déclare la variable LR (Ligne de Référence)

Set OS = Worksheets("Formulaire - Modifier") 'définit l'onglet source OS
Set OD = Worksheets("Planning") 'définit l'onglet destination OD
Set TS = OD.ListObjects("Tableau4") 'définit le tableau structuré TS
Set PL = TS.DataBodyRange 'définit la plage PL
Set R = PL.Find(OS.Range("B3").Value, , xlValues, xlWhole)
'si il existe au moins une occurrence trouvée, copie la plage G2:AF2 de l'onglet source et les copie dans la première occurrence trouvé
If Not R Is Nothing Then
    LR = R.Row
    PL(LR, 1).Resize(, 7).Value = OS.Range("G2:AF2").Value
End If
End Sub

Sinon, il te faudra trouver une autre colonne qui contient une donnée unique...

Merci beaucoup pour votre retour !

C'est parfait :)

Rechercher des sujets similaires à "mise jour donnees tableau vba"