HELP - MACRO EXCEL - REORGANISATION DONNEES
Fermé
Buck35131
Messages postés
9
Date d'inscription
lundi 8 août 2016
Statut
Membre
Dernière intervention
11 août 2016
-
8 août 2016 à 16:48
Utilisateur anonyme - 12 août 2016 à 01:28
Utilisateur anonyme - 12 août 2016 à 01:28
A voir également:
- HELP - MACRO EXCEL - REORGANISATION DONNEES
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Word et excel gratuit - Guide
6 réponses
Utilisateur anonyme
8 août 2016 à 18:50
8 août 2016 à 18:50
Bonjour Buck35131,
Voici ton Fichier Excel 2007 : il te suffit de lancer la macro Essai (^e)
pour remplir ton tableau de droite. Dis-moi ce que tu en penses, et si
tu as besoin de plus d'infos.
Si tu n'arrives pas à ouvrir mon fichier Excel 2007 (*.xlsm), dis-le moi
et je t'enverrai le même converti au format "Excel 97 -2003" (*.xls).
Si ton problème est réglé, merci d'aller en haut de page
pour cliquer sur « Marquer comme résolu ».
Cordialement. 😊
Voici ton Fichier Excel 2007 : il te suffit de lancer la macro Essai (^e)
pour remplir ton tableau de droite. Dis-moi ce que tu en penses, et si
tu as besoin de plus d'infos.
Si tu n'arrives pas à ouvrir mon fichier Excel 2007 (*.xlsm), dis-le moi
et je t'enverrai le même converti au format "Excel 97 -2003" (*.xls).
Si ton problème est réglé, merci d'aller en haut de page
pour cliquer sur « Marquer comme résolu ».
Cordialement. 😊
Buck35131
Messages postés
9
Date d'inscription
lundi 8 août 2016
Statut
Membre
Dernière intervention
11 août 2016
11 août 2016 à 14:27
11 août 2016 à 14:27
Salut,
Ci-joint des images.
J'ai vérifié les points que tu évoques ; à priori c'est bon.
L'idée est de bien comprendre comment cela marche car il est possible que je réutilise cette macro dans d'autres contextes ; il faut que je comprenne bien comment cela marche.
Mais comme je butte déjà sur le lancement.
Idéalement la copie du tableau doit se faire sur une nouvelle feuille.
Merci pour ton avis
Ci-joint des images.
J'ai vérifié les points que tu évoques ; à priori c'est bon.
L'idée est de bien comprendre comment cela marche car il est possible que je réutilise cette macro dans d'autres contextes ; il faut que je comprenne bien comment cela marche.
Mais comme je butte déjà sur le lancement.
Idéalement la copie du tableau doit se faire sur une nouvelle feuille.
Merci pour ton avis
Bonjour Buck,
J'ai bien vu tous tes messages #11 à #14.
Le code VBA que je t'ai fourni marche très bien pour les renseignements de ton
message initial : une seule feuille, les libellés « N1 » à « N6 » et « a » à « g ».
Il ne peut absolument pas fonctionner selon tes nouvelles indications !
Je veux bien refaire ton exercice avec tes nouvelles infos, mais si tu m'indiques
clairement :
1) Pour ton tableau du message #13 :
a) Il est actuellement sur Feuil1 ; veux-tu un autre nom plus explicite ?
b) Coordonnées du tableau : si le coin supérieur gauche est en A1 :
colonnes A à D ; lignes 1 à 12
2) Pour ton tableau du message #11 :
a) Le veux-tu en Feuil2 ? Ou autre nom plus explicite ?
b) Coordonnées du tableau : si le coin supérieur gauche est en A1 :
colonnes A à K ; lignes 1 à 6
Mieux : mets des copies d'écran avec titres de lignes et colonnes (les en-têtes).
À te lire, cordialement. 😊
Buck35131
Messages postés
9
Date d'inscription
lundi 8 août 2016
Statut
Membre
Dernière intervention
11 août 2016
11 août 2016 à 14:28
11 août 2016 à 14:28
Image 2
Buck35131
Messages postés
9
Date d'inscription
lundi 8 août 2016
Statut
Membre
Dernière intervention
11 août 2016
Modifié par Buck35131 le 11/08/2016 à 14:31
Modifié par Buck35131 le 11/08/2016 à 14:31
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Buck35131
Messages postés
9
Date d'inscription
lundi 8 août 2016
Statut
Membre
Dernière intervention
11 août 2016
11 août 2016 à 14:34
11 août 2016 à 14:34
Lis d'abord mon message #15, puis celui-ci.
1) Anomalie : côté gauche, en haut, tu as 2 lignes pour le même projet :
VBAProject (Export Labo... ; normalement : 1 seule ligne ; ça m'arrive
aussi, parfois ; solution : enregistrer le classeur ; fermer Excel, puis le
relancer ; vérifier si ça ne le refait plus ; si oui, à refaire : c'est parfois
bien « capricieux » !
2) Tu as mis le code VBA dans Feuil1 au lieu de Module1 ! Voici comment
ajouter un nouveau module : fais un clic droit sur ta ligne VBAProject et
choisis : Insertion / Module (et pas Module de classe !) ; côté droit, tu as
une page blanche où tu dois copier / coller mon code ; côté gauche, tu
peux voir le nom du module : Module1 ; n'oublie pas de supprimer le
code que tu as mis dans Feuil1 !
3) Je te rappelle que mon code VBA ne peut pas marcher avec tes nouvelles
données ! Mais il marchera tout de suite avec la Feuil1 des classeurs Excel
que je t'ai fourni via cjoint (*.xls et *.xlsx) de mon message #6.
À te lire. 😊
Utilisateur anonyme
12 août 2016 à 01:28
12 août 2016 à 01:28
Bonjour Buck,
Laisse tomber mes messages précédents, car même si tu ne m'as pas
donné toutes les informations nécessaires, j'ai refait ton exercice avec
tes dernières infos ; voici donc le nouveau code VBA à copier / coller
dans Module1 (mon message #16 explique comment faire) :
Fichiers Excel 2007 sans macro
Fichiers Excel 2003 sans macro
Mode d'emploi (après copie du code VBA dans Module1) :
Sur Feuil1, tu peux voir le 1er tableau des échantillons ; la macro
Essai ne s'exécutera pas dessus, mais c'est normal, car tu dois
être sur Feuil2 pour l'exécuter.
Sur Feuil2, note bien, d'abord, que le tableau est quasiment vide ;
le code VBA est fait uniquement pour les colonnes d'analyse déjà
présentes (donc 9 en tout) ; s'il en faut plus je te dirai quoi faire.
Exécutes la macro Essai pour le remplir, puis étudie le code VBA.
--------------------------------------
Dis-moi ce que tu en penses, et si ça te convient.
Si ton problème est réglé, merci d'aller en haut de page
pour cliquer sur « Marquer comme résolu ».
Cordialement. 😊
Laisse tomber mes messages précédents, car même si tu ne m'as pas
donné toutes les informations nécessaires, j'ai refait ton exercice avec
tes dernières infos ; voici donc le nouveau code VBA à copier / coller
dans Module1 (mon message #16 explique comment faire) :
Option Explicit Sub Essai() If ActiveSheet.Name <> "Feuil2" Then Exit Sub Dim Analyses, OldEch As String * 8, cellX As Range, ligN As Long, ligR As Long Dim NbAly As Integer, Aly As String, colR As Integer, flag As Byte, cf As Integer Analyses = Array("HUMIDITÉ", "CENDRES BRUTES", "CALCIUM", _ "HUMIDITÉ ET MAT. VOLATILES", "CELLULOSE BRUTE", "PROTÉINES BRUTES", _ "MATIÈRES GRASSES BRUTES (B)", "ACIDITÉ OLÉIQUE", "IMPURETÉS INSOLUBLES") NbAly = UBound(Analyses): ligN = 3: ligR = 3: Application.ScreenUpdating = False Do Set cellX = Worksheets("Feuil1").Cells(ligN, 2): If IsEmpty(cellX) Then Exit Do If cellX <> OldEch Then ligR = ligR + 1 With cellX Aly = cellX.Offset(, 1): flag = 0 For colR = 0 To NbAly If Aly = Analyses(colR) Then flag = 1: Exit For Next colR If flag = 1 Then ' couleur de fond de la cellule du N° Échantillon cf = .Interior.ColorIndex ' N° Échantillon Cells(ligR, 2) = .Value: Cells(ligR, 2).Interior.ColorIndex = cf: colR = colR + 4 ' Unité ; mais uniquement si non déjà fait If IsEmpty(Cells(3, colR)) Then Cells(3, colR) = .Offset(, 3): Cells(3, colR).Interior.ColorIndex = cf End If ' Valeur Cells(ligR, colR) = .Offset(, 2): Cells(ligR, colR).Interior.ColorIndex = cf OldEch = .Value End If ligN = ligN + 1 End With Loop End Sub
Fichiers Excel 2007 sans macro
Fichiers Excel 2003 sans macro
Mode d'emploi (après copie du code VBA dans Module1) :
Sur Feuil1, tu peux voir le 1er tableau des échantillons ; la macro
Essai ne s'exécutera pas dessus, mais c'est normal, car tu dois
être sur Feuil2 pour l'exécuter.
Sur Feuil2, note bien, d'abord, que le tableau est quasiment vide ;
le code VBA est fait uniquement pour les colonnes d'analyse déjà
présentes (donc 9 en tout) ; s'il en faut plus je te dirai quoi faire.
Exécutes la macro Essai pour le remplir, puis étudie le code VBA.
--------------------------------------
Dis-moi ce que tu en penses, et si ça te convient.
Si ton problème est réglé, merci d'aller en haut de page
pour cliquer sur « Marquer comme résolu ».
Cordialement. 😊
9 août 2016 à 15:29
Merci pour ton msg ; par contre je préfère format excel 97-2003.
Merci d'avance,
Olivier
Modifié par albkan le 9/08/2016 à 15:53
Voici le Fichier Excel 2003 ; ^e lance la macro Essai et remplit le tableau de droite.
Dis-moi ce que tu en penses ; n'hésite pas à me demander plus d'infos si besoin.
Si ton problème est réglé, merci d'aller en haut de page pour cliquer sur le lien
« Marquer comme résolu ». Cordialement. 😊
9 août 2016 à 18:06
sinon, je peux te l'envoyer de nouveau via Cjoint. A+ 😊
10 août 2016 à 09:53
J'ai un blocage au niveau de mon boulot ; les fichiers avec macro passent pas.
Peux tu copier la mcro dans le coeur d'un message sur le forum ? J'aurais plus qu'a recopier ensuite. Merci
10 août 2016 à 12:24
Voici le code VBA à mettre dans Module1 :
Et voici le Fichier Excel 2003 précédent (*.xls) sans Module1 ni macro ;
je te le transmet pour que tu aies la même 1ère feuille que celle que
j'ai utilisé pour cet exercice.
Pour le cas où ça passerait mieux : au format *.xlsx donc sans macros :
Fichier Excel 2007.
N'oublies pas de me dire ce que tu en penses, et de marquer le sujet
comme résolu si ça te convient (lien situé en haut de page).
Cordialement. 😊