Copier Coller pour mettre à jour une BDD en fonction d'un indexe

Bonsoir,

je joins un fichier Excel exemple (CopierColler)

J'ai un onglet Bdd qui contient une base de données et un onglet Fiche pour voir les données affichées suivant un numéro d'entité.

J'arrive bien à voir mes données en sélectionnant depuis Fiche

  • soit le numéro d'entité en B2
  • soit en sélectionnant le nom de l'entité dans le menu déroulant de B5 puis en cliquant sur " Voir la fiche ".

Mais,

j'aimerai aller dans l'autre sens.

Coté onglet Fiche,

modifier des données (un numéro de téléphone par exemple) et cliquer sur un bouton " Enregistrer " pour mettre à jour les données dans l'onglet Bdd.

J'ai 3 entités dans mon exemple mais imaginez qu'en réalité j'en ai des centaines.

Coté onglet Fiche, en B12 j'indique comme Indexe le numéro de ligne de l'entité correspondante de l'onglet Bdd.

Pouvez vous m'aider ?

Je n'arrive pas à exécuter un copier coller depuis un bouton " Enregistrer " en tenant compte du numéro de ligne comme Indexe par exemple.

Merci d'avance pour vos pistes ou solutions.

5copiercoller.xlsm (26.64 Ko)

Bonjour,

à tester,

Sub Enregistrer()
Dim rw As Long, Ligne As Long, i As Long, j As Integer, col As Integer
Dim contact As String
rw = Sheets("fiche").Cells(Rows.Count, "E").End(xlUp).Row
Ligne = Sheets("fiche").Range("B12")
Sheets("Bdd").Cells(Ligne, 1) = Sheets("fiche").Range("B5")
Sheets("Bdd").Cells(Ligne, 2) = Sheets("fiche").Range("B2")

For i = 5 To rw Step 5
    contact = Sheets("fiche").Cells(i, "E")
    col = Application.Match(contact, Sheets("Bdd").Rows(1), 0)

    For j = 0 To 3
        Sheets("Bdd").Cells(Ligne, col + j) = Sheets("fiche").Cells(i + j, "F")
    Next j
Next i
End Sub

Alors là chapeau bas,

réponse ultra rapide et la nuit en plus,

Un grand MERCI i20100 (Vincent)

Il ne me reste plus qu'à déclencher le code sur un bouton par exemple.

Vraiment top

Bonjour i20100,

le code fonctionne parfaitement dans le fichier que j'ai transmis

mais,

j'ai une erreur qui persiste depuis que j'ai copié le code dans mon fichier.

Erreur 13 Incompatibilité de type

J'ai cherché sans succès. J'ai passé toutes les cellules en Texte. J'ai vérifié les noms des onglets (copié collé dans le code). Tout est ok dans le fichier test que j'avais transmis mais cela ne fonctionne pas dans le fichier que je joins.

Pouvez vous m'aider à nouveau s'il vous plaît ?

re,

il faut modifier cette ligne

For i = 5 To rw Step 1

par

For i = 6 To rw Step 5

Bonjour,

c'est parfait,

merci pour votre disponibilité compétence et rapidité.

Pouvez vous m'indiquer pourquoi cette manip, pour que je comprenne bien ?

Pouvez vous m'indiquer pourquoi cette manip, pour que je comprenne bien ?

For i = 6 To rw Step 5

6 - parce que la donnée "CONTACT" en colonne D commence à la ligne 6

5 - parce les données "CONTACT" sont présentent tout les 5 lignes après

Rechercher des sujets similaires à "copier coller mettre jour bdd fonction indexe"