XL 2016 mise en forme de fichier Excel avec VBA

Pierre_0901

XLDnaute Nouveau
Bonjour à tous,
débutant sur VBA, j'aurais besoin des conseils et de l'aide d'experts pour créer un petit bout de code VBA sous Excel 2016 afin de mettre en forme les données d'un fichier Excel.
En pièce jointe, vous trouverez le fichier original (original.xlsm) et l'objectif (objectif.xlsm) après passage dans la moulinette.
description du fonctionnement attendu en quelques mots:
dans le fichier original, correspondant a des tests sur des cartes électroniques, on a dans les colonnes A à F différentes données identifiant les cartes électroniques, en particulier le type (modelName) et le numéro de série unique (BoardSN).
dans la colonne G (Status), on a le résultat du test, qui peut prendre les valeur Pass (carte OK), RPass (carte repassée en test puis déclarée OK), ou Repair (la carte est effectivement en panne et doit être réparée.
En cas de test échoué (réel défaut ou faux défaut (type Rpass)), le logiciel du banc de test saute une ligne et indique dans les colonnes J (CompName) le composant identifié en défaut et en colonne K (Errtype) le type d'erreur rencontré.
Afin de pouvoir réaliser une analyse statistique des défauts rencontrés, réels ou faux-défauts, au moyen par exemple d'un tableau dynamique croisé, analyse paretto etc... il est nécessaire de supprimer les espaces vides et donc de recopier autant de fois qu nécessaire les colonnes A à H en face de chaque défaut, sachant que chaque carte non-ok peut comporter un ou plusieurs défauts (lignes surlignées en jaune dans les deux fichiers).
En bleu-gris sont surlignées les lignes avec un seul défaut, qui ont été modifiées.

Je remercie par avance chacun des lecteur de ce post pour l'aide que vous pourrez m'apporter. Je bloque sur ce problème depuis plusieurs jours, sans en voir la fin :).
Toutes les questions sont les bienvenues pour clarifier si besoin le "cahier des charges" du code.

Merci infiniment.
 

Pièces jointes

  • original.xlsm
    18.3 KB · Affichages: 31
  • objectif.xlsm
    17.9 KB · Affichages: 28

zebanx

XLDnaute Accro
Bonjour Pierre,

Un essai sur le sujet.
J'ai séparé en trois parties :
- offset (-1 ligne) des informations sur les colonnes 10 à 14 si la colonne 10 est remplie
- suppression des lignes si colonne 10 ="" et que, sur la meme ligne, les colonnes A à H sont vides
- remplissage des colonnes A à H pour les lignes restantes.

Cdlt
thierry
 

Pièces jointes

  • original.xls
    65.5 KB · Affichages: 28
Dernière édition:

Pierre_0901

XLDnaute Nouveau
Bonjour Pierre,

Un essai sur le sujet.
J'ai séparé en trois parties :
- offset (-1 ligne) des informations sur les colonnes 10 à 14 si la colonne 10 est remplie
- suppression des lignes si colonne 10 ="" et que, sur la meme ligne, les colonnes A à H sont vides
- remplissage des colonnes A à H pour les lignes restantes.

Cdlt
thierry


Bonjour Thierry, merci beaucoup pour cette réponse très rapide.
Je réalise quelques essais avec différents fichiers et je vous fais un retour dans la journée.
bonne journée
Pierre
 

Pierre_0901

XLDnaute Nouveau
Bonjour Pierre,

Un essai sur le sujet.
J'ai séparé en trois parties :
- offset (-1 ligne) des informations sur les colonnes 10 à 14 si la colonne 10 est remplie
- suppression des lignes si colonne 10 ="" et que, sur la meme ligne, les colonnes A à H sont vides
- remplissage des colonnes A à H pour les lignes restantes.

Cdlt
thierry

Bonjour Thierry,
j'ai testé sur plusieurs exemples de fichiers le code que vous avez développé. Merci encore pour votre aide. Le code produit le résultat attendu et me permet de réaliser les analyses dont j'ai besoin. Le seul bémol concerne le temps de traitement nécessaire. En effet, sur un fichier réel comportant environ 4000 lignes, le temps de traitement avoisine les 10 minutes.
C'est toujours plus rapide qu'à la main, mais existe-t-il des possibilités, des méthodes pour optimiser le traitement et réduire le temps de calcul?
Merci pour votre réponse.
bonne journée.
 

zebanx

XLDnaute Accro
Bonjour Pierre_0901

Un code "remplir_2" qui, testé, fait le travail en < 20 secondes sur 10000 lignes.

J'espère que cela vous conviendra.
Après, il faut d'autres experts du site -).

Cdlt
thierry
 

Pièces jointes

  • original 2.zip
    637.1 KB · Affichages: 23
Dernière édition:

Discussions similaires

Réponses
8
Affichages
408