Améliorer une macro super compliquée

Résolu/Fermé
Qhes Messages postés 176 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 21 mai 2014 - 26 mai 2011 à 11:09
Qhes Messages postés 176 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 21 mai 2014 - 22 févr. 2012 à 08:55
Bonjour,

voilà, j'ai les deux macro suivantes :


Sub Séparer()
'
' découper Macro
' Macro enregistrée le 15/07/2008 par
'
Application.ScreenUpdating = False


Dim i As Integer, NbLigne As Integer, Contenu

Range("B2").Select 'point de départ
While ActiveCell.Value <> Empty
Contenu = Split(ActiveCell.Value, Chr(10))
NbLigne = UBound(Contenu)
If NbLigne > 0 Then
With ActiveCell
Range(.Offset(1, 0), .Offset(NbLigne, 0)).EntireRow.Insert
For i = 0 To NbLigne
.Offset(i, 0).Value = Contenu(i)
.Offset(i, -1).Value = .Offset(0, -1).Value
.Offset(i, 1).Value = .Offset(0, 1).Value
Next i
End With
End If
ActiveCell.Offset(NbLigne + 1, 0).Activate
Wend
Application.ScreenUpdating = True
End Sub

Sub Rassembler()
'
' Macro9 Macro
' Macro enregistrée le 01/10/2008 par
'

Dim lig As Long
Const col1 = 1 ' colonne A
Const col2 = 2 ' colonne B
For lig = 1 To ActiveSheet.UsedRange.Rows.Count
If Cells(lig, col1) = Cells(lig + 1, col1) Then
Cells(lig, col2) = Cells(lig, col2) & Chr(10) & Cells(lig + 1, col2)
Rows(lig + 1).Delete
If Cells(lig + 1, col1) = "" Then Exit For
lig = lig - 1
End If
Next lig
End Sub






Sub CreateTransMenu()
Dim TransMenu As CommandBarPopup

On Error Resume Next
With Application.CommandBars(1)
Set TransMenu = .Controls.Add _
(Type:=msoControlPopup, before:=.Controls.Count)
End With

TransMenu.Caption = "Johanna"

'Creation des sous-menus


With TransMenu.Controls.Add(msoControlButton)
.Caption = "Séparer"

.OnAction = "Séparer"
End With

With TransMenu.Controls.Add(msoControlButton)
.Caption = "Rassembler"

.OnAction = "Rassembler"
End With

With TransMenu.Controls.Add(msoControlButton)
.Caption = "Test 1"

.OnAction = "test1"
End With
End Sub


j'en suis suis vraiment ravie mais le "ik" (eh oui il y à toujours un "ik"... elle ne prend en compte que les 2 première colonnes et j'adorerais pouvoir lui dire bah écoute tu vois cette action? bah tu le fait sur les colonne E et F et tu copie tout ce qui est dans A, B, C, D a chaque fois que tu cré un ligne...

Vous croyez que c'est possible?

Merci d'avance


Je peux peux vous laisser un exemple d'application si nécéssaire.


Merci d'avance
Johanna

A voir également:

12 réponses

Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
28 mai 2011 à 22:12
Bonsoir,
Je pense que c'est possible...mais je n'ai pas bien compris ce que tu souhaites faire.
Pourrais-tu donner un exemple de ce que tu as et du résultat que tu souhaites ?

@+
0
Qhes Messages postés 176 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 21 mai 2014 29
30 mai 2011 à 11:31
bonjour,

pour que ce soit plus claire, voici un fichier qui traite du problème en question :)

http://www.cijoint.fr/cjlink.php?file=cj201105/cij9atnEfr.xlsx

merci d'avance
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
Modifié par Gord21 le 6/06/2011 à 21:01
Bonjour Qhes,
Désolé, j'ai un peu tardé à traiter ton post, as-tu toujours besoin d'améliorer ta macro ?

J'ai compris ce que tu souhaites faire mais j'ai besoin d'informations complémentaires :
- Pour la fonction séparer, souhaites-tu séparer la colonne B puis la colonne C, puis D ... jusqu'à ce que les cellules soient vides avec la même macro ou veux-tu une macro qui sépare la colonne B et une autre qui sépare la colonne C (ce serait la même fonction paramétrable)
- Même question pour la fonction rassembler

@+
0
Qhes Messages postés 176 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 21 mai 2014 29
Modifié par Qhes le 7/06/2011 à 09:35
bonjour

oh oui, j'ai toujours besoin de l'amélioré lol
je l'ai depuis bientot 3ans et a chaque fois que je m'en sert 2 à 3 fois par mois je me prend la tete lol

en fait dans les 2 cas j'aimerais une macro qui opère sur la colonne B puis une autre sur la colonne C et une autre sur la D et ainsi de suite
Ou bien une macro qui me demande sur quelle colonne je veux faire l'opération...

En fait pour t'expliquer le déroulé de la manip :
1 - je mets des codes articles dans la colonne A
2 - Avec une formule rechercheV je vais chercher la composition de chaque article et l'indique dans la colonne B (c'est pour cette raison que j'ai plusieurs info dans la meme cellule) (je me suis en temps servi de la macro rassemblé pour avoir plusieurs infos dans une cellule).
3 - je découpe les cellule de la colonne B avec la macro afin d'obtenir une info par cellule
4 - avec la formule recherchV je reitère l'opération en mettant dans la colonne C les composition des sous article trouvé en colonne B précédemment
5 - je me débrouille pour couper la colonne C et je recommance

au final je fait ça pour les colonnes B, C, D, E, F, G, H et peut etre I

Par contre en y refelchissant je ne pense pas pour le moment avoir besoin de modifier la macro "rassembler"...
Donc si c trop compliquer pas la peine de se rendre la tete de ce coté là...

Je te rappelerais au secour à ce moment là :)

Merci d'avance
Johanna
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
7 juin 2011 à 20:47
Bonsoir,
Je vais commencer par une macro qui te demande sur quelle colone tu veux travailler mais en lisant le détail de ta manip, je pense qu'il est possible d'intégrer la fonction RECHERCHEV dans la macro.
Si tu veux que je regarde dans cette direction, je pense qu'il serait plus facile de mettre un exemple de fichier avec les données brutes sur quelques lignes

@+
0
Qhes Messages postés 176 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 21 mai 2014 29
8 juin 2011 à 09:15
WAAHOOO!!! serais-tu un géni??? :)

je ne t'en demande pas tant mais c vraiment tres gentil comme proposition
Je ne prend pas toujours les données au meme endroit donc ca va etre difficle de tout mettre dans une macro lol

mais si déja tu peux faire comme tu dis c'est a dire une macro qui me demande ou je veux travailler c déjà fantastique :) :) vraiment fantastique :)

par contre si elle me demande sur quelle colonne je veux qu'elle bosse faut quand meme qu'elle copie tout ce qui a dans les colonne précédente a chaque fois qu'elle crée une ligne :)
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
8 juin 2011 à 23:49
Bonsoir,
Non, au risque de te décevoir, je n'ai rien d'un géni :-)
Voici un premier exemple pour que tu me donnes ton avis. Je n'ai traité que la fonction séparer. Si ça te convient, je fait la fonction rassembler dans la foulée.
http://www.cijoint.fr/cjlink.php?file=cj201106/cij1vWPoaC.xls

NB : avec ton ancienne macro, il y avait un problème au niveau de la gestion des erreurs. Si par exemple, en B100 tu avais #N/A, elle ne traitait pas les lignes suivantes.

@+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Qhes Messages postés 176 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 21 mai 2014 29
11 juil. 2011 à 15:59
bonjour,
je suis désolé de ne répondre que maintenant, j'étais en déplacement et en revenant j'avais pas mal de retard...

je viens tout juste de pouvoir me mettre sur ce dossier...

dans tous les cas merci pour ce que tu as fait sur ce fichier c'est génial et oui il y avait un erreur que je ne savais pas réparer donc j'effacais tout les lignes avec "NA"...

Par contre dans le fichier joint, il y a un truc que j'ai pas bien compris...
dans la feuille "données qui pose pb" les colone A et B sont bien unie données mais la colonne C elle est pas divisée.

est ce possible de lui demander de diviser toutes les colonne a chaque retour à la ligne?
0
Qhes Messages postés 176 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 21 mai 2014 29
11 juil. 2011 à 16:01
oups... je viens de comprendre la question posée dans le cadre... oups...

et bien comme tu veux ou peux...

Question posée : on sépare B puis C puis ... ou une fonction sépare B une seconde sépare C, ...

réponse : c'est toi qui voit lol
les 2 me vont l'essentiel c'est qu'a la fin tout soit séparée lol

:D
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
11 juil. 2011 à 22:32
Bonsoir,
D'après ce que je comprends dans tes messages, tu n'as pas essayé ma macro : tu te mets dans l'onglet données qui posent problème et tu lances la macro séparer.

@+
0
Qhes Messages postés 176 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 21 mai 2014 29
12 juil. 2011 à 08:58
euh... je crois bien que si... j'ai fait "complément", "johanna", "séparer"...
a moins qu'elle se trouve ailleurs?

il me dit : "erreur de complitaion" "membre de méthode ou données introuvable" et surligne "UF1_première_cecclule.Value)"
0
Qhes Messages postés 176 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 21 mai 2014 29
12 juil. 2011 à 13:55
en relisant ta question, je pensque que ce qui serait le plus utilie ici serait une meme macro qui sépare B, puis C, puis D, etc...
enfin c'est toi qui voit, si pour toi l'autre solution est plus facile moi ca me va aussi :)
0
Qhes Messages postés 176 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 21 mai 2014 29
12 juil. 2011 à 13:56
mais ta macro as t elle remplacer la mienne?
car ma macro est carrement dans le menu de la barre de tache excel...

c'est peut etre pour ca que je ne la met pas en route...
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
12 juil. 2011 à 22:04
Bonsoir,
Pour tester, tu ouvres juste mon fichier, puis Outils/Macros/Macro... et tu lances la macro Separer.
As-tu un message d'erreur ?
@+
0
Qhes Messages postés 176 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 21 mai 2014 29
13 juil. 2011 à 09:13
Bonjour,

Je suis désolé de t'embéter avec mes questions à 2 balles...
en tout car merci beaucoup pour ta patiente...

oui, j'ai le meme message d'erreur :
Erreur de compilation
Membre de méthode ou de données introuvable
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
13 juil. 2011 à 18:39
Bonjour,
D'accord, et avec ce fichier, lorsque tu l'ouvres, est-ce qu'il se passe quelque chose ?
http://www.cijoint.fr/cjlink.php?file=cj201107/cij2bWk2YZ.xls

@+
0
Qhes Messages postés 176 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 21 mai 2014 29
18 juil. 2011 à 08:47
bonjour,
avec ce fichier jai le meme message qui s'affiche...
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
Modifié par Gord21 le 18/07/2011 à 18:10
Bonjour,
Voici une autre version. Si tu as toujours le message d'erreur, peux-tu me dire à quel niveau se met le curseur lorsque tu choisis débogage ?
http://www.cijoint.fr/cjlink.php?file=cj201107/cijPgnX9U0.xls

@+
0
Qhes Messages postés 176 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 21 mai 2014 29
25 nov. 2011 à 08:49
je fichier est plus accessible... ca fait plus de 3mois... :/ (glup...)
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
30 nov. 2011 à 20:50
Bonsoir,
Voici le nouveau lien

https://www.cjoint.com/?AKEuXHZUxQh
@+
0
Qhes Messages postés 176 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 21 mai 2014 29
2 déc. 2011 à 12:21
Bonjour,

Merci de prendre le temps de t'occuper de mon problème c'est vraiment très gentil :)

Le curseur ne me donne pas de message d'erreur mais ne fait pas les modif en colonne C

le curceur est en fin de course dans la célule B1138 de la feuille "données qui posent problème"
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
6 déc. 2011 à 18:26
Bonsoir,
Et avec ce code ?
Tu cliques sur le bouton dans la feuil4
https://www.cjoint.com/?ALgsx5eqXFu

Au fait, tu utilises quelle version de Excel ?
@+
0
Qhes Messages postés 176 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 21 mai 2014 29
6 déc. 2011 à 18:30
Si tu était a coté de moi je crois que je t'aurais sauté au coup lol

bon restons calme lol
pour le moment je l'ai juste fait pour le fichier de ci-joint
je vais essayer sur d'autre fichiers
mais avant j'ai été tellement contente de voir que ca marchais au moins sur celui ci que je voulais te remercier :)

donc merci merci merci bcp !!!!!! :P

(je suis sous 2007)
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
6 déc. 2011 à 21:20
De rien. Si tu as des questions, n'hésite pas. Je ne l'ai testé que sur 2003 donc il y a peut-être des adaptations à faire.
@+
0
Qhes Messages postés 176 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 21 mai 2014 29
7 déc. 2011 à 08:57
Je vais essayer de la faire fonctionner aujourdhui sur 2007 je te dirais...

mais pour le moment elle est juste géniale!!!
tu es génial!!

Merci du fond du coeur!!!
tu ne te rend pas compte tu service que tu me rend, vraiment ça fait des années que je le fait à la mano tu va me faire gagner un temps considérable!!!
Je t'aurais invité à boire un verre si je te connaissais ou si je n'avais pas autant peur des rencontre internet mdrrrr

Merci Gord21
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
7 déc. 2011 à 12:33
Bonjour,
Génial ? Il faudra que je pense à le dire à mon chef au moment des augmentations ;-)
Sinon, je n'ai pas terminé le code, il y a juste la fonction séparer : je peux faire une adaptation du code pour la fonction rassembler. Ca t'intéresse ?
0
Qhes Messages postés 176 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 21 mai 2014 29
20 févr. 2012 à 11:21
ca marche tiptop sur 2007!!
merci encore c'est vraiment super

je vais essayer de l'intégrer à mon menu complémentaire et ca sera le top :)
rien de cela n'aurait été possible sans ton aide merci Gord21!!

Si jamais un jour tu as du temps a tuer en bravant de nouveau les code vba pour adapter le rassembler je suis prenneuse :)
Mais c vraiment que si tu as du temps a tuer sinon c pas grave tu ma rendu vraiment un sacré service la!!!!
merci bcp bcp
c génial :)
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
20 févr. 2012 à 20:34
Bonsoir,
Oui, je pourrais trouver du temps a tuer. Peut-être demain
@+
0
Qhes Messages postés 176 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 21 mai 2014 29
21 févr. 2012 à 09:16
Merci :)
mais ce n'est pas préssé et c'est vraiment que si tu as le temps.
0
Qhes Messages postés 176 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 21 mai 2014 29
21 févr. 2012 à 09:35
par contre j'ai essayer de l'intégrer à mon sous menu mais ca ne marche pas
"impossible d'exécuter la macri 'onglet.xla!séparer'. il est possible qu'elle ne soit pas disponible dans ce classeur.

:/
0
Qhes Messages postés 176 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 21 mai 2014 29
7 déc. 2011 à 13:50
Tu pourrais serieusement faire ça?
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
8 déc. 2011 à 19:33
Bonsoir,
Ben oui, je suis génial ;-)
Mais je ne pense pas pouvoir le faire cette année. Dans ton ancienne macro, visiblement, tu avais des menus, veux-tu que je les remette ?
@+
0
Qhes Messages postés 176 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 21 mai 2014 29
8 déc. 2011 à 19:36
tu pense toujours a tout comme ça?

c'est super gentil mais j'ai réussi a l'integré dans un nouveau menu :)
trop forte la fille!!!
mdrrrr (surtout au gros coup de bol lol)

:)
mais merci d'y avoir pensé

sinon c'est pas grave si tu ne peux pas le "rassembler" tout de suite le plus important c'était le "séparer" chose que tu as brillament réussi :)

le rassembler pourrais aussi m'etre tres util mais je voudrais pas avoir l'aire d'en demander trop mdrrr
0
Qhes Messages postés 176 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 21 mai 2014 29
24 nov. 2011 à 14:01
euh... depuis il y a eu les vacances... et puis la rentrée avec son lot de retard et puis d'autres déplacement avec leur lot de taf en plus...
et avec tout ça j'avais carrement oublié que je m'étais enfin décider a demande de l'aide concernant ce sujet...

dans le genre franchement à la masse je postule pour la médaille d'or...
Gord21?? Serais tu encore là? et surtout serais tu ok pour te souvenir de moi et des mes soucis de macro???

:(
je suis désolée....
-1
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
24 nov. 2011 à 20:08
Bonsoir,
Pas de problème, peux-tu répondre à ma question (#18)
@+
0