Ajouter une condition à une macro VBA

Re-bonjour (vous allez finir par me connaitre )

Voici ma problématique du jour:

Le fichier ci-joint importe, met en tableaux et mets en formes des données de la feuille "données brutes" vers la feuille "bilan"

Un userform "importation des données" controle le tout.

Le 1er bouton permet de créer la feuille bilan en appelant une succesion de SUB:

Call Liste_Markers --> importe et transpose les "marker" de C1 à la dernière colonne

Call Liste_Samples --> importe les "sample file" et les "sample name" liés en A et B

Call Formatage_données_Genemapper2 ---> importe les données taille et les mets en forme dans le tableau crée

Call Bordures_Autofiltres ---> rajoute des bordures et des filtres pour faire joli.

Le probleme: je veux créer un bouton pour ajouter des données sans retoucher celles qui sont déjà présente.

Donc j'ai recopier les sub "Liste_Samples" et "Formatage_données_Genemapper2" pour les renommer en "Liste_Samples_supplémentaires" et "Formatage_données_supplémentaires".

Comment je peux rajouter une condition pour que la première n' importe pas les "sample files" déjà présentes dans la feuille "Bilan" et comment faire en sorte que la deuxième ne formate que les nouvelle données.?

Merci pour votre aide plus que précieuse.

EDIT: Apparemment remplacer dans la SUB "Liste_Samples_supplémentaires"

On Error GoTo 0 par On Error Resume Next suffit à importer uniquement les samples file qui ne sont pas présente.

J'ai bon dans le raisonnement ou pas?

Bonjour Tkd 2009 le forum

dans ta dernière partie tu parles de on error resume next et on error goto 0 , mon avis est que de ne pas gérer les lignes c'est plus simple que de faire le boulot comme il faut .!!!

D'utiliser le On error revient a botter en touche, donc de ne pas traiter l'info!!!

C'est mauvais , très mauvais

Je viens d'ouvrir ton fichier et il n'y a aucune explications dedans mais toute cette succession de macro je n'ai pas détaillé mais je pense que le problème doit pouvoir être réglé beaucoup plus simplement

a+

papou

Je reconnais que le fichier exemple est un peu touffu, du coup je rajoute une version allégée qui ne contient que les 2 macros que je souhaite modifier.

L'objectif est donc toujours de faire un transfert des colonnes B et E de la feuille "Données brutes" vers A et B de la feuille "bilan" si ces données ne sont pas déjà présentes. (macro liste_sample_supplémentaire)

Je suis d'accord avec toi pour l'utilisation du Error, mais bon, si ça marche....

J'ai essayé de rajouter une condition dans la ligne

For Each Cel In plage
    If Cel <> "" Then Sfile.Add Cel, CStr(Cel)
Next Cel

pour que la collection ne se fasse que si les données ne sont pas présentes, mais j'y arrive pas.

Bonne nouvelle: je progresse!

Dans le fichier joint, la 1ere macro " Liste_Samples_Supplémentaires" semble travailler correctement.

Grace au code:

For Each Cel In plage
 Set Cherch = plage2.Find(Cel)
  If Cherch Is Nothing Then
  Sfile.Add Cel, CStr(Cel)
  End If
 Next

Je créé une collection des données présentes dans la feuille source mais pas la feuille cible, puis je colle cette collection dans la feuille cible.

Il me reste le problème de faire suivre les 2 colonnes (C,D) de données uniquement pour cette collection.

La sub "Formatage_données" le fait mais sur toutes les données (For I = 2 to dlg) et pas uniquement celles de la nouvelle collection.

Pour contourner le probleme je pensais définir une plage avec:

For Each Cel In plage
 Set Cherch = plage2.Find(Cel)
  If Cherch Is Nothing Then
'créé une nouvelle plage avec les données présente dans la feuille source mais pas dans la feuille cible.
  Newplage Cel, CStr(Cel)
  End If
 Next

puis remplacer le "I" dans le reste de la sub par cette "newplage".

Je n'ai pas encore appliquée cette théorie, mais est ce que ça vous semble la bonne approche?

Je précise que le but est de transférer de la feuille "Données brutes" les "sample file" contenant TOTO et TEST ainsi que leur données (C,D) vers la feuille "Bilan" sans toucher aux données qui sont déjà présente et déjà traitées.

bonjour,

mon probleme s'est simplifié mais je coince quand même.

Dans le fichier joint, j'ai un tableau sur la feuille bilan dont les données sont récupérées et mise en forme par la sub "formatage des données"

Je voudrais modifier cette SUB pour la faire fonctionner sur des "sample file" (colonne A de bilan) qui se rajoutent au dernier moment sans toucher les autres.

Pour l'exemple j'ai rajouté les samples TOTO et TUTU en bas de colonne A, j'arrive à définir une plage sur ces nouveaux samples comme suit:

'range(range("C65536").End(xlUp).Offset(1, -2), range("A65536").End(xlUp))

Mais je n'arrive pas à borner l'execution de la sub sur ce range.

Quelqu'un pourrait il m'éclairer SVP

Rechercher des sujets similaires à "ajouter condition macro vba"