[vba] Extraction plusieurs chaînes caracteres
Fermé
Payet
-
3 janv. 2011 à 10:04
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 4 janv. 2011 à 10:40
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 4 janv. 2011 à 10:40
A voir également:
- [vba] Extraction plusieurs chaînes caracteres
- Caractères ascii - Guide
- Caractères spéciaux symboles clavier - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Caractères spéciaux - Guide
- Clavier mac caractères spéciaux - Guide
2 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
3 janv. 2011 à 11:32
3 janv. 2011 à 11:32
Bonjour,
Si j'ai bien compris (c'est lundi) tu as actuellement dans UNE cellule des données séparées par des ":" et ce sur 20000 lignes environ
Tu voudrais mettre une donnée par cellule
Si oui, sans VBA, tu peux utiliser "données-convertir"
ou utiliser l'enregistreur de macro avec ce "données -convertir" sur quelques lignes si tu tiens à une macro
tu élagues ce qui n'est pas nécessaire (voir l'aide en ligne) et tu utilises laderligne pour délimiter la zone de travail sans avoir à dérouler sur 20000 lignes
Si j'ai bien compris (c'est lundi) tu as actuellement dans UNE cellule des données séparées par des ":" et ce sur 20000 lignes environ
Tu voudrais mettre une donnée par cellule
Si oui, sans VBA, tu peux utiliser "données-convertir"
ou utiliser l'enregistreur de macro avec ce "données -convertir" sur quelques lignes si tu tiens à une macro
tu élagues ce qui n'est pas nécessaire (voir l'aide en ligne) et tu utilises laderligne pour délimiter la zone de travail sans avoir à dérouler sur 20000 lignes
Ca fonctionne merci bien.
Mais si quelqu'un pouvait me dire ce qui ne va pas dans mon code, j'aimerais beaucoup y arriver par du code.
Merci.
Mais si quelqu'un pouvait me dire ce qui ne va pas dans mon code, j'aimerais beaucoup y arriver par du code.
Merci.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
4 janv. 2011 à 10:40
4 janv. 2011 à 10:40
Bonjour,
Dim monTab() As String: t'es sûr ? (date de naissance, peut-^tre CP)
par prudence déclare sans préciser
Tu ne commences pas par le + facile en VBA surtout avec de grands tableaux... :-)
règle de base en VBA: éviter au maximum de boucler avec des activecell, select-selection et autre copy-paste
proposition
mais le + simple serait d'utiliser l'enregistreur de macro avec données convertir
et d'ajouter
Dim monTab() As String: t'es sûr ? (date de naissance, peut-^tre CP)
par prudence déclare sans préciser
dim montab
Tu ne commences pas par le + facile en VBA surtout avec de grands tableaux... :-)
règle de base en VBA: éviter au maximum de boucler avec des activecell, select-selection et autre copy-paste
proposition
Option Explicit Sub separer() 'sur 22000 lignes, il est nécessaire de 'sortir d'XL et de travailler en RAM par un array 'gain de temps >2000 fois par apport à activation cellules Dim derlig As Long, lig As Long, col As Byte Dim separe, T_out derlig = Range("A65536").End(xlUp).Row ReDim T_out(derlig - 1, 6) ' un array commence à 0 et non 1 'collecte les cellules les séparent par ";" et les mémorise en RAM dans une variable- tableau For lig = 1 To derlig separe = Split(Cells(lig, 1), ":") For col = 0 To UBound(separe) T_out(lig - 1, col) = separe(col) Next Next 'fige le défilement de l'écran Application.ScreenUpdating = False ' mis en feuille 2 pour essais Sheets(2).Range("A2:G" & derlig) = T_out End Sub
mais le + simple serait d'utiliser l'enregistreur de macro avec données convertir
et d'ajouter
With Range("A1").CurrentRegion .TextToColumns Destinati... .... end with