Mise à a jour des données a partir d'une autre feuille

Bonjour,

Je butte sur un problème depuis plusieurs jours. j'ai parcouru le forum mais je ne trouve pas de problème qui ressemble suffisamment au mien pour l'adapter. Voilà le sujet :

je bosse dans une asso et on j'essaye de moderniser tout ce qui se faisait a la main en passant a l'informatique. Nous avons une liste de bénéficiaires et nous listons leur capacités dans le travail.

J'ai un fichier Excel qui regroupe l’ensemble des critères et me permet d'avoir un récapitulatif individuel.

Dans la feuille "individuel" j'ai utilisé la fonction recherchev() pour afficher les données correspondantes a une personne. Je souhaiterai maintenant toujours a l'aide de la même feuille pouvoir réaliser la mise à jour de la feuille "Données" qui compile toutes les données brutes. Il faut que la mise à jour puisse être partielle ( parfois seul un critère est mis à jour).

Je pensais passer par un bouton mise à jour mais je suis complétement perdu en VBA.

Un grand merci a ceux qui pourront m'aider !

108imp2011vm-test.xlsx (100.17 Ko)

Bon je continues a chercher de mon coté. Avec l'aide des cours VBA du site j'ai trouvé une solution qui est loin d'être optimale :

Sub modif()
    ' definition de variable temporaire
    Dim valeur_case As String

'UTILISATION PETITS OUTILS

    'verification de la présence d'une donnée à mettre à jour
    If (IsEmpty(Sheets("Individuel").Range("E12")) = False) Then
    'la variable temporaire prends comme valeur le numéro de la ligne ou se trouve le nom dans la feuille donnée ( dans la cellule B6 j'ai mi une fonction recherchev qui pointe vers une colonne d'index)
        valeur_case = Sheets("Individuel").Range("B6")
    'on remplace la valeur du champ correspondant dans la feuille données
                    Sheets("Données").Range("C" + valeur_case) = Sheets("Individuel").Range("E12")
    End If
End Sub
       

Après un essai ça fonctionne bien, le seul soucis c'est de dupliquer ça pour les 114 critères que j'ai. J'avoue que je n'ose pas trop me lancer dans les boucles.

Je vais continuer comme çà, si l'un d'entre vous a une solution plus simple je suis preneur. Encore merci

Bonjour

Les préalables

Une formule avec RECHERCHEV() 2 colonnes à droite de la cellule modifiée

La plage de recherche doit commencer en colonne A ===> La colonne retour correspond à la vrai colonne dans le tableau

Le nom en B3 doit être unique

Macro à copier dans le module de la feuille

Clic droit sur l'onglet de la feuille "Individuel" ---> Visualiser le code

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Msg As String
Dim Colonne As Integer
Dim Cel As Range

  If Target.Count > 1 Or Target.Cells(1, 1) = "" Then Exit Sub
  With Sheets("Données")
    Set Cel = .Columns("A").Find(what:=Range("B3"), LookIn:=xlValues, lookat:=xlWhole)
    If Not Cel Is Nothing Then
      Msg = Target.Offset(0, -2).Formula
      If InStr(1, Msg, "VLOOKUP") > 0 Then
        Colonne = Val(Split(Msg, ",")(2))
        .Cells(Cel.Row, Colonne) = Target
        Target = ""
      End If
    Else
      MsgBox "Le nom " & Range("B3") & " est inconnu"
    End If
  End With
End Sub

Merci,

cependant je ne comprends pas trop où placer la formule RECHERCHEV() ni ce qu'elle doit contenir

pour ce qui est du nom en B3 il est unique pas de soucis.

Bonjour

Non il ne faut rien changer

La macro ne fonctionnera que si une formule avec RECHERCHEV() est située 2 colonnes à gauche de la cellule que tu modifies

Actuellement tes formules sont dans les colonnes C et I

Donc la mise à jour ne se fera que si tu modifies les cellules des colonnes E et K

Le peu des formules que j'ai vu correspond à ce que j'indique

=RECHERCHEV($B$3;Données!$A$4:$DI$40;[surligner=#FFFF40]3;FAUX)

$A$4:$DI$40 : La plage de recherche commence bien en colonne A ==> Donc la colonne de retour est la vrai colonne dans le tableau de la page "Données" : 3 = C

ok, j'avais pas tout compris. Dernière petite question (j'ai encore du louper un truc) j'ai fait ce que tu indique pour insérer le code :

Clic droit sur l'onglet de la feuille "Individuel" ---> Visualiser le code

et je colle l'ensemble du code dans la fenêtre qui s'ouvre par contre je n'arrive pas a affecter la macro a mon bouton.

Bonjour

Tu peux vendre (ou le recycler) ton bouton, il ne sert plus à rien

Dès que tu modifieras une cellule dans les colonnes prévues, ton tableau sera mis à jour

Ok,, Je n'avais pas compris que ca marchais sans bouton.

Un très grand merci !


A l'utilisation j'ai juste une petit message quand je change le nom après avoir utilisé la macro :

Erreur d'exécution '1004':

Erreur definie par l'application ou par l'objet

le débogage pointe vers cette ligne :

Msg = Target.Offset(0, -2).Formula

edit :

résolu, le nom que je dois sélectionner est situé en B3, du coup le Target.Offset(0,-2) tombe hors de la feuille, j'ai juste inséré une nouvelle ligne et modifié les références à B3 en C3.

En tout cas merci beaucoup !

Rechercher des sujets similaires à "mise jour donnees partir feuille"