/ / Déplacer le texte vers la colonne dans Excel avec le script VB - Excel, VBScript, copier, feuille de calcul, coller

Déplacer le texte vers la colonne dans Excel avec le script VB - Excel, VBScript, copier, feuille de calcul, coller

J'ai une grande feuille de calcul Excel avec des enregistrements. Chaque enregistrement est composé de 12 lignes. J'ai besoin de les déplacer vers des colonnes. Toutes les douze lignes doivent être copiées dans la même colonne correspondant. Chaque ligne sera sa propre colonne. J'ai besoin du script pour ouvrir le classeur, exécuter la tâche, puis enregistrer le classeur avec le nouvel arrangement.

La feuille de calcul est très grande, j'ai donc besoin de lascript pour boucler tout au long de la feuille. À la fin du script, je veux que les douze premières lignes soient un enregistrement réparti sur 12 colonnes. Voici ce que j'ai jusqu'à présent:

Dim xlApp
Dim xlSheet1
Dim xlBook1

Set xlApp = CreateObject("Excel.Application")
xlApp.Workbooks.Open "C:usersam2878desktopExchange Audit Log.xls"

Set xlBook1 = xlApp.Workbooks("Exchange Audit Log.xls")
Set xlSheet1 + xlBook1.Worksheet("Exchange Audit Log")

xlApp.Application.Visible = True

xlSheet1.Range("A1:A12").Cut

xlSheet1.Range("A1:L1").Paste

Loop

xlBook1.SaveAs "C:usersam2878desktopExchange Audit Log.xls", xlNormal, "","",False,False
xlApp.Quit

Réponses:

0 pour la réponse № 1

L'opération que vous recherchez s'appelle "transposer". Dans Excel, il est implémenté en tant que paramètre du PasteSpecial méthode. Vous ne pouvez cependant pas coller dans les cellules que vous venez de découper, vous devez donc le coller ailleurs:

Const xlAll  = -4104
Const xlNone = -4142

...

xlSheet1.Range("A1:A12").Cut
xlBook1.Sheets(2).PasteSpecial xlAll, xlNone, , True

Si vous devez modifier la feuille d'origine, vous pouvez ensuite déplacer les données transposées vers la feuille source:

xlBook1.Sheets(2).Range("A1:L1").Cut
xlSheet1.Activate
xlApp.ActiveSheet.Range("A1").Select
xlApp.ActiveSheet.Paste