Export données et colorer certaines lignes

smeto

XLDnaute Nouveau
Bonjour tout le monde,:)

sur le classeur EOTP je souhaite avoir un code qui permet d'importer les colonnes B & C (à partir de B2 & C2) du fichier Arbo et les coller dans les colonnes A & B (à partir de A8 & B8) du fichier EOTP avec trois petites conditions :


>> après importation le code doit colorer les cellules A8 et B8 en vert
>> puis le code doit vérifier dans la colonne B de la feuille EOTP s'il trouve les textes suivants (Comptes Transitoires, Intra, Extra) il colore les cellules A & B en rouge (comme j'ai fait manuellement)
>> enfin le code doit vérifier dans la colonne B de la feuille EOTP s'il trouve les textes suivants (Compte provisoire, production, Autres Materiaux, Matos, Achats, ) il colore les cellules A & B en bleu (comme j'ai fait manuellement)

Merci de vous intéresser a mon projet :rolleyes:

Cordialement
SMETO
 

Fichiers joints

zebanx

XLDnaute Accro
Bonjour Smeto

Un essai par VBA (taper ALT+F8 puis lancer la macro depuis ARBO)

Avant :
Il faudra modifier l'extension dans le fichier ainsi que le chemin sur la macro principale qui se trouve dans le fichier ARBO (je travaille sous 2003).

Pour le faire, depuis le fichier ARBO, tu tapes ALT + F11 pour accéder au module dico et tu modifies les passages suivants (la première en rajoutant le x à la fin normalement, la deuxième dépendra de ton répertoire où se trouve le fichier EOTP.xlsx".
weotp = "EOTP.xls" '--- à adapter
fichier = "C:\Users\thierry\Desktop" '--- A àdapter

J'ai utilisé ma palette de couleurs, si elle ne convient pas, même type de manipulations.
Tu vas dans le fichier EOTP puis ALT +F11 et dans le module 1 tu trouveras la macro avec des numéros pour les colorindex.
Tu modifies les valeurs jusqu'à trouver la couleur qui te convienne (où tu crées une macro permettant de choisir sur plusieurs cellules les couleurs que tu souhaites afin d'avoir ces numéros directement pour les remplacer dans la macro EOTP_couleurs).

Et enfin, je me suis permis de rajouter le nombre d'occurences en colonne 3. Si ça ne t'intéresse pas, tu peux modifier les bornes sur les macros.
Si tu n'y arrives pas, dis-le moi je te passerai les modifications.

@+
 

Fichiers joints

Dernière édition:

smeto

XLDnaute Nouveau
Bonjour ZEBANX,
merci pour votre réponse mais j'ai des réticences par rapport à votre solution
il ne faut ajouter aucune colonne
 

zebanx

XLDnaute Accro
Re-

Dans ce cas... (et je signale que les données sont incorporées sans doublons). Si vous souhaitez toutes les données, indiquez le moi svp.
 

Fichiers joints

smeto

XLDnaute Nouveau
Re,
je crois que vous avez considéré que les données existent déjà dans le fichier EOTP alors qu'il faut les importer en premier lieu du fichier Arbo avant de les colorer
 

zebanx

XLDnaute Accro
Euh...non :rolleyes:

Bon, en copiant l'ensemble des colonnes.
Il faut lancer la macro "exporte_eotp_colonnesBC()".
J'ai passé le code avec les fichiers en ".XLSX" qui doivent être la terminaison de vos fichier #1.

Par contre, il me semble que vous devriez enregistrer vos fichiers en format "XLSM" plutôt que "XLSX" pour pouvoir utiliser les macros.
https://www.excel-exercice.com/fichier-xls-ou-xlsx/
Dans ce cas, il faudra simplement modifier l'extension dans les macros (ALT + F11 et allez dans les différents codes).


@+
 

Fichiers joints

smeto

XLDnaute Nouveau
Re,
j'ai compris maintenant ce que vous avez fait.
vous avez créé une macro dans le fichier EOTP et une autre dans Arbo...mais je crois que vous n'avez pas bien compris ce que j'ai demandé.
j'aimerais avoir un seul code dans le fichier EOTP permettant de ramener les données du fichier Arbo et en même temps les colorer.
 

smeto

XLDnaute Nouveau
re,
désolé mais je ne comprend pas pourquoi vous avez changer l'extension de Arbo alors que c'est juste une source ca doit garder l'extension xlsx intialie.

puis dans le code j'ai remarqué que je dois adapter cette ligne fichier = "C:\Users\thierry\Desktop" '--- A àdapter à chaque fois je change de pc chose qui n'est pas fiable parce que je ne travaille pas avec un seul PC.
 

zebanx

XLDnaute Accro
Re

1. Un classeur xlsx n'a pas de macro, contrairement à un fichier xlsm.
https://www.excel-exercice.com/fichier-xls-ou-xlsx/
Essayez d'enregistrer votre fichier en xlsx, la macro devrait avoir disparu..

2. Il faut bien un chemin pour ouvrir le fichier Arbo.
Donc on a trois possibilité :
2.1 Le chemin est connu et statique (#9)
2.2 Vous choisissez où se trouve le fichier ( getopenfile avec arborescence pour obtenir la variable "chemin") mais il faut le chercher manuellement
2.3 Les deux fichiers sont sur le même répertoire.

A vous de choisir...
 

smeto

XLDnaute Nouveau
bah,
1-juste EOTP qui doit avoir de macro, le fichier Arbo c'est juste un fichier source pourquoi le transférer en XLSM ?
2-c'est normal que les deux fichiers soient dans le même répertoire
 

smeto

XLDnaute Nouveau
Re,
la c'est bon, ça marche même si ça prend quelque secondes pour s’exécuter parce que dans le fichier original j'ai d'autres lignes à colorer en rouge et bleu que j'ai adapté au code.
je ne sais pas s'il existe possibilité pour accélérer l'exécution

merci beaucoup pour votre soutien
 

zebanx

XLDnaute Accro
Re-

26000 lignes en un peu plus de 2.4 secondes après modification du code avec insertion d'un messagebox final pour la durée de calcul.

Pour le vérifier, sur le fichier envoyé, n'appuyez pas sur GO mais appuyez sur ALT+F8 et lancez svp la macro "EOTP_couleurs".

Une modification pour la casse dans le code (l'array "A" indiquant par exemple COMPTE PROVISOIRE doit en fait ne pas faire l'impasse si la cellule contient "Compte Provisoire" ou "compte provisoire").
Apparemment, vous avez d'ailleurs complété les Array par d'autres mots à rechercher, c'est très bien :cool:.

Bonne soirée
 

Fichiers joints

smeto

XLDnaute Nouveau
je n'ai pas bien compris ce que vous vouliez dire par ça :

(l'array "A" indiquant par exemple COMPTE PROVISOIRE doit en fait ne pas faire l'impasse si la cellule contient "Compte Provisoire" ou "compte provisoire").
 

zebanx

XLDnaute Accro
C'était effectivement le deuxième ARRAY :cool:

Sub EOTP_couleurs()
A = Array("COMPTES TRANSITOIRES", "INTRA", "EXTRA")
B = Array("COMPTE PROVISOIRE", "PRODUCTION", "AUTRES MATERIAUX", "MATOS", "ACHATS")
derligne = Sheets("EOTP").Cells(Rows.Count, 1).End(3).Row
......
 

Discussions similaires


Haut Bas