XL 2016 Mettre à jour un tableau avec de nouvelles données

LauLauR

XLDnaute Nouveau
Bonjour,

Tous les mois, je dois exporter de nouveaux numéros de campagne de maintenance.
Ces campagnes sont liées à des équipements et des numéros de bon de travail.

Chaque mois, un fichier d'export est généré (dans mon fichier joint : Onglet Feuil18).
Je voudrais ajouter les nouvelles données dans le tableau contenant les anciennes données (dans mon fichier joint : onglet Camp).

J'ai testé une macro qui me permet presque d'obtenir le résultat que je souhaite. Malheureusement, je récupère a chaque fois une ligne par nouveau numéro de campagne. Or, plusieurs équipements sont liés à une même campagne :confused:.
Les campagnes sont classées par ordre croissant.
A partir, du dernier fichier d'export généré (onglet "Feuil18"), je souhaiterais trouver la ligne où apparait un nouveau numéro de campagne, puis copier toutes les valeurs en dessous et les coller dans l'onglet "Camp"

En espérant avoir été assez claire.

Voici la macro présente dans le module 3 de vba:

Option Explicit

Dim lgn&, i&

Sub Report()

Application.ScreenUpdating = False 'supprime la mise à jour de l'écran après l'exécution de chaque instruction
With Sheets("Feuil18") 'pour faciliter l'écriture des instructions
For i = 1 To .Range("C" & Rows.Count).End(xlUp).Row 'on boucle sur toutes les lignes de la feuille "Export à jour"
If .Range("C" & i) > Range("H1") Then 'on ne s'intéresse qu'aux lignes dont le n° est supérieur à C1 de la feuille à mettre à jour
lgn = Range("A" & Rows.Count).End(xlUp)(2).Row 'ligne où on va coller
.Range("A" & i & ":C" & i).Copy 'on copie
Range("A" & lgn).PasteSpecial xlPasteValues 'on colle
End If 'fin de condition
Next i 'fin de boucle
End With 'fin de with
End Sub
 

Pièces jointes

  • MAJ_Tableau .xlsm
    436.4 KB · Affichages: 16

WTF

XLDnaute Impliqué
Bonjour Laurence,
Je ne suis malheureusement pas très doué en VBA, donc je ne suis pas en mesure de t'aider sur ton code, mais ton sujet me semble très facilement traitable par Powerquery. Si il n'est pas inclus dans ta version d'Excel, tu peux le télécharger gratuitement sur le site de Microsoft.
Bonne journée
 

Dudu2

XLDnaute Barbatruc
Bonjour,
Comprends pas bien ton truc.
Tu as des données dans la Feuil18, et tu veux les copier dans la feuille Camp ? C'est ça ?
Quelles sont les données que tu veux copier de la Feuil18 précisément ? Toutes ? Celles qui correspondent au dernier numéro de campagne indiqué près du bouton ?
Et dans la feuille Camp tu veux coller les données copiées où ? A la fin ? Insérer selon le numéro de campagne ? Si des données du numéro de campagne sont déjà présentes que faut-il faire ? Les supprimer pour les remplacer par les nouvelles ? Les laisser et ajouter les nouvelles ?
 
Dernière édition:

LauLauR

XLDnaute Nouveau
Bonjour,
Comprends pas bien ton truc.
Tu as des données dans la Feuil18, et tu veux les copier dans la feuille Camp ? C'est ça ?
Quelles sont les données que tu veux copier de la Feuil18 précisément ? Toutes ? Celles qui correspondent au dernier numéro de campagne indiqué près du bouton ?
Et dans la feuille Camp tu veux coller les données copiées où ? A la fin ? Insérer selon le numéro de campagne ? Si des données du numéro de campagne sont déjà présentes que faut-il faire ? Les supprimer pour les remplacer par les nouvelles ? Les laisser et ajouter les nouvelles ?
Merci pour ta réponse.

Concrètement les données de Feuil18 sont à jour, il y a plus de données que dans Camp
Je veux trouver le plus grand numéro de campagne extrait dans Camp et le retrouver dans Feuil18.
Ainsi, dans Feuil18, je copie toutes les lignes dont le numéro de campagne est supérieur au plus grand trouvé dans Camp.
Puisque les campagnes sont classées dans l'ordre croissant, cela revient à copier toutes les lignes en dessous plus grand numéro de campagne trouvé dans Camp.

Puis je colle la sélection dans Camp, en dessous du tableau initial. Idéalement, sans toucher au reste : pas de suppression ni de remplacement.

J'espère avoir été plus claire
 

LauLauR

XLDnaute Nouveau
Bonjour Laurence,
Je ne suis malheureusement pas très doué en VBA, donc je ne suis pas en mesure de t'aider sur ton code, mais ton sujet me semble très facilement traitable par Powerquery. Si il n'est pas inclus dans ta version d'Excel, tu peux le télécharger gratuitement sur le site de Microsoft.
Bonne journée
Bonjour,

Merci pour ta réponse. Je ne connais pas du tout PowerQuery et je préfère que le fichier soit compatibles avec les versions de mes collaborateurs.
J'espère m'en sortir avec VBA :)

Bonne journée.
 

Discussions similaires

Réponses
6
Affichages
268
Réponses
6
Affichages
202

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof