URGENT : Recherche macro pour saisir dans une cellule le contenu de plusieurs ce

Résolu
Masko972 Messages postés 5 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 3 août 2006 - 3 août 2006 à 11:45
Masko972 Messages postés 5 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 3 août 2006 - 3 août 2006 à 14:24
Bonjour,
Je Recherche une macro pour saisir dans une cellule le contenu de plusieurs cellules précédemment sélectionnées et que chaque donnée soit séparée par un slash.

Merci d'avance a celui qui trouvera cette macro qui me permettra de trier plus de 7000 données.

Très très important....

Cdmt

8 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
3 août 2006 à 12:15
Salut,

Tiensessaies ceci
NOTE: Tu aurais pu trouve asse rapidement en prenant le temps de chercher.

Dim UCell As Range 
Dim Contenu As String 
'Selectionne la plage de cellule A2 a L47
ActiveSheet.Range("A2:L47").Select 
Contenu = vbNullString 
'POur chaque cellules contenu dans la plage
For Each UCell In Selection 
     Contenu = Contenu & UCell.Value & "/" 
Next 
'Affiche dans A1 tout les contenu des cellules de la plage A2 L47 separe par un /
ActiveSheet.Range("A1").Value = Contenu 
 

<small> Coloration syntaxique automatique [AFCK]</small>
       

@+, Julien
Pensez: Règlement/STRONG>
3
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
3 août 2006 à 13:35
Je tente de te comprendre :
"Il faudrait que je puisse déclarer dans la macro que la plage de cellule A2 L47 soit une plage de cellules que je selectionne lors de l'execution de la macro."
Une plage que tu sélectionnes lors de l'exécution de la macro ? Ca veut dire que tu sélectionnes avec ta souris une plage dans la feuille Excel, puis que tu lances la macro ?
Dans ce cas, il te suffit de supprimer ActiveSheet.Range("A2:L47").Select du bout de code, ainsi, ce qui sera défini par Selection dans le code, sera la plage sélectionnée avant le lancement de la macro.


"Et que A1 soit la cellule sur laquelle je suis lors de l'execution de la macro afin que ca soit celle la qui sera remplie."
A part le fait que ce ne soit pas très français ^^, si je te suis bien, ce que tu veux, c'est que lorsque tu lances la requête, le résultat s'affiche dans la cellule "A1" de la feuille active. Ben, tu laisses le code tel qu'il est : tu n'as pas besoin de te mettre sur A1 pour que ça fonctionne, le code, tel qu'il est écrit, va remplir systématiquement la cellule A1 de la feuille active.

Molenn
3
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
3 août 2006 à 14:07
Oui mais là, tu vas avoir un pb avec une seule macro ^^

En effet, dans les macros : le selection correspond a ce que tu as donc sélectionné avec le curseur avant le lancement :

Tu ne pourras pas désigner à la fois la plage A2:L47 et la cellule A1 pour que ta macro choisisse ce qui lui conviendra en fonction du bout de code.

La solution ? Tu coupes en 2 :
Tu sélectionnes la plage de données.
Tu lances la Macro 1 : le traitement se lance et au lieu de stocker le contenu dans la cellule A1, tu la stockes dans une variable publique (ou pourquoi pas si tu as envie, dans une autre cellule d'une feuille temporaire de ton fichier Excel).

Sélection de la cellule où tu veux copier le résultat.
Tu lances la Macro 2 : et tu remplis la cellule avec le contenu de ta variable/ de ta cellule de données temporaires, etc ...
Le code sera quelque chose du style :

ActiveCell.Value = = Contenu

Molenn
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
3 août 2006 à 14:23
Re,

Bah voila tu as ta réponse.

Pense bien a valider les réponses qui ont pu t'aider.      

@+, Julien
Pensez: Règlement/STRONG>
3

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

Posez votre question
Masko972 Messages postés 5 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 3 août 2006
3 août 2006 à 12:18
Oui mais je suis nouveau et j'ai cherché pendant une demi heure sans trouver.
Aurais tu un lien sur le sujet en question.

Merci beaucoup
0
Masko972 Messages postés 5 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 3 août 2006
3 août 2006 à 12:53
La formule fonctionne a merveille.

J'ai oublier de préciser qu'il faut que je fasse ca plusiseurs fois de suite pour plusieurs documents.

Il faudrait que je puisse déclarer dans la macro que la plage de cellule A2 L47 soit une plage de cellules que je selectionne lors de l'execution de la macro.
Et que A1 soit la cellule sur laquelle je suis lors de l'execution de la macro afin que ca soit celle la qui sera remplie.

Merci

Dim UCell As Range 
Dim Contenu As String 
'Plage a saisir

ActiveSheet.Range("A2:L47").Select 
Contenu =  vbNullString 
'POur chaque cellules contenu dans la plage
For Each UCell In Selection 
     Contenu = Contenu & UCell.Value & "/" 
Next 
'Affiche dans la cellule (sur lequelle je suis tout les contenu des cellules de la plage saisie separe par un /
ActiveSheet.Range("A1").Value  = Contenu 

Merci d'avance
0
Masko972 Messages postés 5 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 3 août 2006
3 août 2006 à 13:50
Tu as raison je me suis vraiment mal exprimé. Mais c'est dur a expliquer.
Merci pour le premier problème qui est à présent résolu grace a toi.

En ce qui concerne le second probleme:
Ce que j'essayais de dire, c'est que je veux que la cellule qui sera remplie une fois la marco exécutée, soit une cellule sélectionné juste avant l'execution de la macro.

Ce qui m'embete c'est que je doit a chaque fois retourner dans la macro pour modifier A1 par une autre cellule et ainsi de suite.

J'espere etre compris
0
Masko972 Messages postés 5 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 3 août 2006
3 août 2006 à 14:24
Merci enormément
0
Rejoignez-nous