Texte en colonnes à l'aide de VBA - Conseils Excel

Table des matières

Travis demande:

J'essaye de mettre en forme du texte dans des colonnes séparées. Le texte est dans une colonne comme suit:

UNE
Nom de l'entreprise A
PO BOÎTE 1
NEWARK NJ 07101
Nom de l'entreprise B
PO BOÎTE 2
1400 PARC SANS SOUCI
WILKES-BARRE PA 18703
Nom de l'entreprise C
PO BOÎTE 3
CHICAGO IL 60694
Nom de l'entreprise D
PO BOÎTE 4
CLEARFIELD UT 84015
Nom de l'entreprise E
BOÎTE POSTALE 5
OGDEN UT 84401
Nom de l'entreprise F
PO BOÎTE 6
BALTIMORE MD 21264-4351

Lorsque j'ai formaté le test pour exceller, j'ai créé cette colonne comme illustré ci-dessus. Je voudrais connaître une formule dans laquelle je peux faire apparaître les données sur une ligne plutôt que sur plusieurs lignes pour une entreprise, la formule devrait résulter si je me donne ce qui suit sur une ligne mais dans des colonnes différentes:

Tous sur la même ligne

UNE B C
Nom de l'entreprise A PO BOÎTE 1 NEWARK NJ 07101

J'ai utilisé des vlookups, des hlookups et des tableaux croisés dynamiques, mais je ne peux pas comprendre comment obtenir la date d'une manière ligne par ligne.

J'ai pu faire apparaître les noms de sociétés ligne par ligne dans une colonne en les triant et j'ai pensé que je pourrais utiliser une combinaison d'un vlookup avec un hlookup pour me donner les résultats que je recherchais mais je ne connais pas le formule appropriée pour nicher dans la recherche d'éther. J'ai également testé une fonction DSUM mais aucune ne fonctionne pour moi? Alors s'il vous plaît laissez-moi savoir quoi ou comment résoudre mon problème.

Je pense que cela peut être facilement réalisé en utilisant une macro. Essaye celui-là.

Sub CopyAcross() Dim i As Long Dim NRow As Long Dim LastRow As Long NRow = 2 'First Row TO COPY, change this if you want i = 2 'First Row where the data appears, I assumed it started in A2 LastRow = Range("A65536").End(xlUp).Row While i <= LastRow Range(Cells(i, 1), Cells(i, 1).End(xlDown)).Copy Cells(NRow, 2).PasteSpecial Transpose:=True 'In here, I'm copying to Column 2, Next availabe Row. You can change the 2 if you want. NRow = NRow + 1 i = Cells(i, 1).End(xlDown).End(xlDown).Row Wend End Sub

Articles intéressants...