Réorganisation des données (Microsoft Excel)
Si vous importez une liste de données dans Excel, il n’est pas inhabituel de se retrouver avec beaucoup de données dans la colonne A. En fait, il n’est pas inhabituel de ne rien avoir dans l’une des autres colonnes. (Tout dépend de la nature des données que vous importez, bien sûr.) Dans le cadre de l’utilisation des données dans Excel, vous souhaiterez peut-être «réorganiser» les données afin qu’elles soient extraites dans plus de colonnes que la colonne A .
À titre d’exemple, imaginez que vous avez importé vos données et qu’elles ont fini par occuper les lignes 1 à 212 de la colonne A. Ce que vous voulez vraiment, c’est que les données occupent les colonnes A à F, du nombre de lignes nécessaires pour contenir les données. Ainsi, A2 doit être déplacé vers B1, A3 vers C1, A4, vers D1, A5 vers E1, A6 vers F1, puis A7 vers A2, A8 vers B2, etc.
Pour réorganiser les données de cette manière, vous pouvez utiliser la macro suivante.
Sélectionnez les données que vous souhaitez réorganiser, puis exécutez la macro. On vous demande combien de colonnes vous voulez dans les données réorganisées, puis le transfert des données commence.
Sub CompressData() Dim rSource As Range Dim rTarget As Range Dim iWriteRow As Integer Dim iWriteCol As Integer Dim iColCount As Integer Dim iTargetCols As Integer Dim J As Integer iTargetCols = Val(InputBox("How many columns?")) If iTargetCols > 1 Then Set rSource = ActiveSheet.Range(ActiveWindow.Selection.Address) If rSource.Columns.Count > 1 Then Exit Sub iWriteRow = rSource.Row + (rSource.Cells.Count / iTargetCols) iWriteCol = rSource.Column + iTargetCols - 1 Set rTarget = Range(Cells(rSource.Row, rSource.Column), _ Cells(iWriteRow, iWriteCol)) For J = 1 To rSource.Cells.Count rTarget.Cells(J) = rSource.Cells(J) If J > (rSource.Cells.Count / iTargetCols) Then _ rSource.Cells(J).Clear Next J End If End Sub
La macro transfère les informations en définissant deux plages: la plage source que vous avez sélectionnée lorsque vous avez exécuté la macro et la plage cible définie par la taille calculée en fonction du nombre de colonnes souhaité. La plage source est représentée par l’objet variable rSource et la plage cible par rTarget. La boucle For … Next est utilisée pour transférer réellement les valeurs.
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (2301) s’applique à Microsoft Excel 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:
lien: / excelribbon-Reorganizing_Data [Réorganisation des données]
.