![]() |
|
Forum
|
|
|
#16 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: février 2008
Messages: 27
|
Les réponses :
- oui, je suis limité à 256 - je ne suis pas certaine d'avoir bien compris, pourriez-vous préciser. Je pense que je vais mettre les infos dans un fichier txt et après les importer sous excel. Mais je ne suis pas sûre de bien répondre à votre question. Sarah |
|
|
|
| ANNONCES | |||
|
|
|
|
#17 (permalink) |
|
XLDnaute Impliqué
Date d'inscription: décembre 2005
Localisation: Chelles 77500
Version Excel : Excel 2004 (MAC)
Messages: 862
|
Re,
Je parlais du résultat. Bon, je mets tout ça ligne 10, puis 11...... v'là l'code, avec des petites astuces.... Code:
Sub Macro1()
' Macro1 Macro
' Macro enregistrée le 5/03/2008 par Gruick
Dim élément As String
chaîne = Cells(1, 1): élément = "a"
Do Until chaîne = ""
i = i + 1
pévé = InStr(1, chaîne, ";", 1)
élément = Left(chaîne, pévé - 1) ': MsgBox élément
If IsEmpty(élément) Then Exit Sub
chaîne = Right(chaîne, Len(chaîne) - pévé)
If i < 257 Then
Cells(10, i) = élément
Else
Cells(11, i Mod 256) = élément
End If
Loop
End Sub
A toi, moi je vais manger.... Gruick |
|
|
|
|
|
#18 (permalink) |
|
XLDnaute Accro
Date d'inscription: décembre 2005
Messages: 1 780
|
Bonjour
Une autre approche Avec un éditeur de texte remplacer les ";" par une marque de fin de paragraphe (WORD) ou un retour chariot (CR) et importer les données dans une colonne et ensuite utiliser une macro pour faire la transposition. JP |
|
|
|
|
|
#19 (permalink) |
|
XLDnaute Accro
Date d'inscription: mars 2005
Messages: 1 409
|
Re bonjour,
j'ai un peu modifié la macro de Gruick pour que cela fonctionne Bon en fait il y a peut-être des problèmes dans le code. A voir Code:
Sub Macro1()
' Macro1 Macro
' Macro enregistrée le 5/03/2008 par Gruick modif MJ
Dim élément As String
Dim chaîne As String
Dim pévé As single
chaîne = Cells(1, 1) ': élément = "a"
Do Until chaîne = ""
i = i + 1
pévé = InStr(1, chaîne, ";", 1)
élément = Left(chaîne, pévé - 1): MsgBox élément
If IsEmpty(élément) Then Exit Sub
chaîne = Right(chaîne, Len(chaîne) - pévé)
If i < 257 Then
Cells(10, i) = élément
Else
Cells(11, i Mod 256) = élément
End If
Loop
End Sub
__________________
Salutations Michel Pour faire facilement vos comptes personnels http://www.excel-downloads.com/remos...s-MJ-2007.html Trouvez les couleurs Le JEU http://www.excel-downloads.com/forum...-couleurs.html Trouvez le mot http://www.excel-downloads.com/forum...tml#post572580 Dernière modification par MJ13 ; 05/03/2008 à 16h36. |
|
|
|
|
|
#20 (permalink) |
|
XLDnaute Impliqué
Date d'inscription: décembre 2005
Localisation: Chelles 77500
Version Excel : Excel 2004 (MAC)
Messages: 862
|
re,
Puisque après essai sur route, mon code fonctionnait je l'ai envoyé. C'est Sarah qui voit. Peux-tu me dire ce qui clochait, cher MJ ? l'instruction élément ="a" est inutile, une scorie de mon premier test que j'ai oublié d'enlever. Les dim ? Don't let me be misunderstood, la la la la la la..... Gruick Edit : Effectivement, la deuxième chaîne n'a pas été testée. Donc, deuxième version plus subtile, et plus courte Code:
Sub Macro1() ' Macro1 Macro ' Macro enregistrée le 5/03/2008 par Gruick Dim élément As String, chaîne As String, pévé As Single chaîne = Cells(1, 1) Do Until chaîne = "" i = i + 1 pévé = InStr(1, chaîne, ";", 1) If pévé <> 0 Then élément = Left(chaîne, pévé - 1) chaîne = Right(chaîne, Len(chaîne) - pévé) Else élément = chaîne: chaîne = "" End If If i Mod 257 = 0 Then i = 258 Cells(Int(i / 257) + 10, i Mod 257) = élément Loop MsgBox "fini" End Sub Mon unique neurône est fatigué, à demain pour les avis. Gruick Dernière modification par Gruick ; 05/03/2008 à 23h44. Motif: 2ème livraison |
|
|
|
|
|
#22 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: février 2008
Messages: 27
|
Re-bonjour,
avant l'essai, une petite question : cette macro je la fais après avoir fait la procèdure pour "enlevre les ; sous le fichier TXT" et avoir enregisté le tout dans un autre fichier TXT, n'est ce pas? Merci à vous de m'éclairer. A bientôt Sarah |
|
|
|
|
|
#23 (permalink) |
|
XLDnaute Impliqué
Date d'inscription: décembre 2005
Localisation: Chelles 77500
Version Excel : Excel 2004 (MAC)
Messages: 862
|
Bonjour Sarah,
Non, puisque c'est justement le point-virgule qui est l'élément de séparation. J'ai fait cette macro en fonction du fichier que tu as donné, avec ses points-virgule. J'ai testé avec tes deux exemples (j'ai rajouté le mot "gruick" sur le deuxième pour savoir où ça finissait), tout marche bien. Tes séries initiales sont mises aussi en lignes 30 et 31, juste pour les avoir sous la main. Tu peux les effacer. Seule la cellule A1 est indispensable. Je t'envoies le fichier. Tiens moi au courant, comme disait Claude François.... Gruick |
|
|
|
|
|
#24 (permalink) |
|
XLDnaute Accro
Date d'inscription: mars 2005
Messages: 1 409
|
Re bonjour à tous
Gruick, je préfère cette dernière version. Il y en a d'autres que j'ai ajouté (dont la tienne) dans ce classeur. Allez, il y en a de plus rapides que d'autres! Il suffit de dézipper les fichiers dans un dossier sous C:\TXT Remercions aussi MichelXLD pour la partie lire dans un fichier TXT.
__________________
Salutations Michel Pour faire facilement vos comptes personnels http://www.excel-downloads.com/remos...s-MJ-2007.html Trouvez les couleurs Le JEU http://www.excel-downloads.com/forum...-couleurs.html Trouvez le mot http://www.excel-downloads.com/forum...tml#post572580 |
|
|
|
|
|
#25 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: février 2008
Messages: 27
|
Re-re-Bonjour,
merci pour vos aides........ J'ai essayé les exemples que vous m'avez envoyé pour me familiariser avec la manip. A priori ça devrait être Ok. Je teste ça demain matin et vous tiens au courrant. En tout les cas, c'est vraiment très sympath à vous d'avoir fait tout ça. sarah |
|
|
|
| ANNONCES | |
![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|
Discussions similaires
|
||||
| Discussion | Auteur | Forum | Réponses | Dernier message |
| macro complementaire, charger ces macro en auto via une macro ? | avoriaz | Forum Excel Downloads - Archives | 0 | 29/12/2004 21h24 |