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 .
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
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 .
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