Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Etienne2323

XLDnaute Impliqué
Bonjour à tous,
j'ai un mini défi à vous proposer. J'aimerais savoir si, par le biais d'une macro,
vous seriez en mesure de décortiquer chacun des termes de cette cellule:
Code:
Canada (Non-Agency)** 3,29 106,27 159,06 0,74 0,64 1,17 4,37 7,21 4,72 4,93 5,32 5,63 n/a 26,22 6,89 6,76 7,97 5,00 10,02 0,89 26183

et de les tabuler, de manière à ce qu'il n'y ait qu'une information par cellule. Chacune des information à conserver est séparée par un espace. Comment faire ? J'ai commencé avec des Len(cellule), Left(cellule) et Mid mais j'ai l'impression que je ne suis pas parti dans la bonne direction.

Voici ce que j'ai jusqu'à maintenant.

Code:
For Row = 3 To Cells(5, 1).End(xlDown).Row
temp = ""
temp = Cells(Row, 1).Value
texte = ""
Cells.Replace What:=".", Replacement:=","
    
    For i = 1 To Len(temp)
        c = Mid(temp, i, 1)
        c3 = Mid(temp, i, 3)
        If c = "1" Or c = "2" Or c = "3" Or c = "4" Or c = "5" Or c = "6" Or c = "7" Or c = "8" Or c = "9" Or c = "0" Or c3 = "n/a" Then
            texte = Left(temp, i - 1)
            Cells(Row, 11).Value = texte
            Cells(Row, 1).Value = Mid(temp, i)
            GoTo suite
        End If
    Next i
suite:

Next Row


Vous avez un bout de code qui ferait le travail à me proposer ?

Merci beaucoup !

Cordialement,

Étienne
 
Dernière édition:
Re : Petit défi VBA

Bonjour Pascal,
effectivement, c'est la suite du PDF. Je vais essayer de le faire uniquement avec un copier-coller et une macro qui tabulera chacun des termes contenu à l'intérieur des cellules de bases. Je pensais me faire ensuite une réplique du tableau du pdf dans un autre onglet et de transférer les données tabuler sous ce tableau. C'est pourquoi je préférerais le faire par macro.

Est-ce que vous auriez une suggestion ?

Cordialement,
Étienne
 
Re : Petit défi VBA

Bonjour,

tu utilise SPLIT qui éclate "Renvoie un tableau de base zéro à une dimension contenant le nombre spécifié de sous-chaînes" comme dit le help VBA

Table = Split("Canada (Non-Agency)** 3,29 106,27 159,06 0,74 0,64 1,17 4,37 7,21 4,72 4,93 5,32 5,63 n/a 26,22 6,89 6,76 7,97 5,00 10,02 0,89 26183", " ")
For i = 0 To UBound(Table)
MsgBox Table(i)
Next

Est-ce ta question?

GIBI
 
Re : Petit défi VBA

Bonjour à tous,
merci de vos réponses si rapides. Tout d'abord, Hasco, merci pour le truc. C'est exactement ce que je cherchais à faire. Je l'ai fait ensuite avec l'enregistreur de macro, modifer quelques paramètres, et ça fonctionne comme un charme. Je vous déposerai le code modifié dans quelques minutes. Si cela peu intéressé quelqu'un d'autre ...

GIBI, merci pour l'essai. Ce n'est pas exactement ce que je cherchais à faire. Par contre, en modifiant le bout de code légèrement, remplaçant le MsgBox par un collage des données sur les bonnes cellules, cela fait bien le boulot.

Merci à tous !!

Bonne journée !
Étienne
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
6
Affichages
605
Réponses
0
Affichages
460
  • Question Question
Microsoft 365 Cpier/coller en VBA
Réponses
7
Affichages
692
Réponses
33
Affichages
3 K
Retour