Mise à jour valeur

Bonjour a tous!!!

voila je souhaite avoir un coup de main sur une formule ou une macro sur un sujet assez difficile (pour moi)

je m'explique :

j'ai un fichier excel (jusque ici normal) avec deux feuilles

dans la première mon "suivi" avec x colonnes et x lignes (env 4000)

dans le deuxième un extract "source" d'une base de donnée avec x colonnes et x lignes (env 4000) (mise a jour de cette base 1 fois /semaine)

je souhaite :

  • Dans mon suivi ne garder que certaine colonnes de la feuille "source".
  • Dans mon suivi a chaque ligne je peux avoir des commentaires (info importante) liée en référence a la première colonne.
  • Dans mon "source" il peux y avoir des lignes en plus a chaque fois donc je souhaite qu'elle s'ajoute dans le suivi
concrètement :

dans la feuille "source" la colonne avec le titre A est commune avec le suivi

dans le suivi il faut faire une mise a jour avec les autres colonnes de la "source" mais faire attention en cas de r'ajout de ligne dans la base "source"

je sais pas si je m'explique bien

merci pour vos retour...

13suivi.zip (11.81 Ko)

Bonjour et bienvenue sur le forum

PEPITO59 a écrit :

je sais pas si je m'explique bien

Pas assez bien pour moi, en tous cas.

Mais s'il y avait des données dans tes tableaux, cela aiderait peut-être...

Bye !

Bonjour

...mais faire attention en cas de r'ajout de ligne dans la base "source"

C'est à dire, faire attention à quoi ?

Sinon code ci-dessous à essayer en lui associant un bouton placé sur la feuille Suivi ou source

Sub Maj()
Dim dlg As Integer, i As Integer
dlg = Sheets("suivi").Range("A" & Sheets("suivi").Rows.Count).End(xlUp).Row
For i = 10 To Sheets("source").Range("A" & Sheets("source").Rows.Count).End(xlUp).Row
    With Sheets("suivi")
        .Range("A" & dlg + 1) = Sheets("source").Range("A" & i)
        .Range("B" & dlg + 1) = Sheets("source").Range("F" & i)
        .Range("C" & dlg + 1) = Sheets("source").Range("I" & i)
        .Range("E" & dlg + 1) = Sheets("source").Range("J" & i)
        .Range("F" & dlg + 1) = Sheets("source").Range("N" & i)
        .Range("G" & dlg + 1) = Sheets("source").Range("O" & i)
        .Range("I" & dlg + 1) = Sheets("source").Range("AI" & i)
        .Range("J" & dlg + 1) = Sheets("source").Range("AY" & i)
        .Range("K" & dlg + 1) = Sheets("source").Range("DQ" & i)
        .Range("R" & dlg + 1) = Sheets("source").Range("DR" & i)
        .Range("S" & dlg + 1) = Sheets("source").Range("DS" & i)
    End With
Next
End Sub

Si ok, veillez à cloturer le fil lors de votre réponse en cliquant sur le V vert à coté du bouton EDITER

Cordialement

merci ça avance ci joint le fichier avec des valeurs

le truc important c'est que la feuille "source" change 1 fois par semaine et des lignes avec un numéros de dossier peuvent être créer il faut que dans le suivi cela ne décale pas les information en vert car il sont liée au numéro de maison

14suivi.zip (13.26 Ko)

Re

Si vous reprenez votre premier fichier posté et le code proposé, cela ne modifie pas les commentaires

Votre deuxième fichier ne correspond en rien au premier. Donc le code doit être refait complètement.

le truc important c'est que la feuille "source" change 1 fois par semaine et des lignes avec un numéros de dossier peuvent être créer

?? Si la feuille source change, on ajoute les lignes de la feuille source dans la feuille suivi. C'est pas ce que vous voulez ??

Dan a écrit :

Re

Si vous reprenez votre premier fichier posté et le code proposé, cela ne modifie pas les commentaires

Votre deuxième fichier ne correspond en rien au premier. Donc le code doit être refait complètement.

le truc important c'est que la feuille "source" change 1 fois par semaine et des lignes avec un numéros de dossier peuvent être créer

?? Si la feuille source change, on ajoute les lignes de la feuille source dans la feuille suivi. C'est pas ce que vous voulez ??

oui et non

oui : des nouvelles lignes peuvent être créer entre deux autres ligne existante sur le fichier suivi / source

non : car les infos des lignes déjà existante sur le fichier suivi peuvent être modifier suivant le fichier source "mise a jour"

merci

Re

Quel est le bon fichier ? le premier ou le deuxième ??? Comme déjà dit avant les fichiers ne sont pas identiques

Coté dossier, vous ne voulez avoir qu'un seul dossier dans la feuille suivi en colonne A, ce qui implique que le code doit remettre éventuellement à jour sur base de la feuille source si ce dossier existe déjà en feuille suivi. Correct ??

Dan a écrit :

Re

Quel est le bon fichier ? le premier ou le deuxième ??? Comme déjà dit avant les fichiers ne sont pas identiques

Coté dossier, vous ne voulez avoir qu'un seul dossier dans la feuille suivi en colonne A, ce qui implique que le code doit remettre éventuellement à jour sur base de la feuille source si ce dossier existe déjà en feuille suivi. Correct ??

C'est le 2ème qui es bon

En faite la source me donne tout les numéros de dossier au jour le jour si la base change (ligne suplementaire) il faut que dans suivi elle viennent ce rajouter en décalant toutes les lignes car dans suivi je rajoute des info qui correspond à chaque numéros de dossier.

Merci

re

En faite la source me donne tout les numéros de dossier au jour le jour si la base change (ligne suplementaire) il faut que dans suivi elle viennent ce rajouter en décalant toutes les lignes car dans suivi je rajoute des info qui correspond à chaque numéros de dossier.

C'est uniquement la ligne supplémentaire qui est à rajouter ou toutes lignes qui sont dans Source ?

Quand vous parlez de "décaler toutes les lignes", vous voulez dire quoi exactement ? Le code que je vous avait fait rajoutait les lignes source en dessous de la dernière ligne trouvée dans Suivi

Dan a écrit :

re

En faite la source me donne tout les numéros de dossier au jour le jour si la base change (ligne suplementaire) il faut que dans suivi elle viennent ce rajouter en décalant toutes les lignes car dans suivi je rajoute des info qui correspond à chaque numéros de dossier.

C'est uniquement la ligne supplémentaire qui est à rajouter ou toutes lignes qui sont dans Source ?

Quand vous parlez de "décaler toutes les lignes", vous voulez dire quoi exactement ? Le code que je vous avait fait rajoutait les lignes source en dessous de la dernière ligne trouvée dans Suivi

Aujourd'hui là feuille suivi et la feuille source sont identique mise à part les commentaires dans la feuille suivi 1 fois par semaine il y a une

Mise à jour des éléments de chaque ligne dans le fichier source avec parfois des ajouts de numéros de dossier (pas forcément à la fin)

Je souhaite que les info des dossiers sur mon suivi se met à jour avec la feuille source et ajouter le dossier qui n'existe pas dans la feuille suivi.

Je sais que ça a l'air compliquer...mais jarrive pas à expliquer plus en détail. merci

Re

Je sais que ça a l'air compliquer...mais jarrive pas à expliquer plus en détail. merci

Non là les dernières explications sont claires !

Dans votre fichier, remplacer le code que je vous avais proposé par celui ci-après

Sub Maj()
'Macro Dan 26/01/17
Dim dlg As Integer, i As Integer, lig As Integer
For i = 10 To Sheets("source").Range("A" & Sheets("source").Rows.Count).End(xlUp).Row
    dlg = Sheets("suivi").Range("A" & Sheets("suivi").Rows.Count).End(xlUp).Row + 1
    With Sheets("suivi")
    On Error Resume Next
    lig = .Range("A:A").Find(Sheets("source").Range("A" & i), LookIn:=xlValues, LookAt:=xlWhole).Row
    If lig > 0 Then dlg = lig
        .Range("A" & dlg) = Sheets("source").Range("A" & i) 'dossier
        .Range("B" & dlg) = Sheets("source").Range("B" & i) 'Id 1
        .Range("C" & dlg) = Sheets("source").Range("C" & i) 'Etat 1
        .Range("E" & dlg) = Sheets("source").Range("D" & i) 'date1
        .Range("F" & dlg) = Sheets("source").Range("E" & i) 'Id2
        .Range("G" & dlg) = Sheets("source").Range("F" & i) 'Etat2
        .Range("I" & dlg) = Sheets("source").Range("G" & i) 'Etat site
        .Range("J" & dlg) = Sheets("source").Range("H" & i) 'NB p
        .Range("K" & dlg) = Sheets("source").Range("I" & i) 'Id3
        .Range("R" & dlg) = Sheets("source").Range("J" & i) 'date id 3
        .Range("S" & dlg) = Sheets("source").Range("K" & i) 'date effective
    End With
    lig = 0
Next
End Sub

Si ok, veillez à cloturer le fil lors de votre réponse en cliquant sur le V vert à coté du bouton EDITER (Pour réouvir le fil cliquez sur la case à cocher devenue rouge par la cloture.

Cordialement

Dan a écrit :

Re

Je sais que ça a l'air compliquer...mais jarrive pas à expliquer plus en détail. merci

Non là les dernières explications sont claires !

Dans votre fichier, remplacer le code que je vous avais proposé par celui ci-après

Sub Maj()
'Macro Dan 26/01/17
Dim dlg As Integer, i As Integer, lig As Integer
For i = 10 To Sheets("source").Range("A" & Sheets("source").Rows.Count).End(xlUp).Row
    dlg = Sheets("suivi").Range("A" & Sheets("suivi").Rows.Count).End(xlUp).Row + 1
    With Sheets("suivi")
    On Error Resume Next
    lig = .Range("A:A").Find(Sheets("source").Range("A" & i), LookIn:=xlValues, LookAt:=xlWhole).Row
    If lig > 0 Then dlg = lig
        .Range("A" & dlg) = Sheets("source").Range("A" & i) 'dossier
        .Range("B" & dlg) = Sheets("source").Range("B" & i) 'Id 1
        .Range("C" & dlg) = Sheets("source").Range("C" & i) 'Etat 1
        .Range("E" & dlg) = Sheets("source").Range("D" & i) 'date1
        .Range("F" & dlg) = Sheets("source").Range("E" & i) 'Id2
        .Range("G" & dlg) = Sheets("source").Range("F" & i) 'Etat2
        .Range("I" & dlg) = Sheets("source").Range("G" & i) 'Etat site
        .Range("J" & dlg) = Sheets("source").Range("H" & i) 'NB p
        .Range("K" & dlg) = Sheets("source").Range("I" & i) 'Id3
        .Range("R" & dlg) = Sheets("source").Range("J" & i) 'date id 3
        .Range("S" & dlg) = Sheets("source").Range("K" & i) 'date effective
    End With
    lig = 0
Next
End Sub

Si ok, veillez à cloturer le fil lors de votre réponse en cliquant sur le V vert à coté du bouton EDITER (Pour réouvir le fil cliquez sur la case à cocher devenue rouge par la cloture.

Cordialement

NICKEL !!!!! Ça Marche merci beaucoup je clôture le sujet !!

Rechercher des sujets similaires à "mise jour valeur"