Macro pour tableau
fyftyone
-
Frenchie83 Messages postés 2254 Statut Membre -
Frenchie83 Messages postés 2254 Statut Membre -
Bonjour,
Voilà, j'ai un petit soucis de macro sous excel.
Premièrement, je n'y connais rien en vb. :)
Alors j'ai un tableau avec des valeurs.
Ce que je souhaiterais, c'est transformer ce tableau en 3 colonnes.
Les colonnes sont mes positions en x, mes lignes mes valeurs en y et les valeurs de la cellule sont mes valeurs en Z.
Ce que je souhaiterais, c'est donc faire trois colonnes : x y z.
Autrement dit, si ma valeur de la cellule C5 est 36, je souhaiterais que mon nouveau tableau indique 3 5 36.
Est-ce compréhensible? (Sachant que mon tableau fait environ 768 colonnes sur 800 lignes :))
Merci d'avance.
Pour infos, je suis sous excel 2007
Kévin.
Voilà, j'ai un petit soucis de macro sous excel.
Premièrement, je n'y connais rien en vb. :)
Alors j'ai un tableau avec des valeurs.
Ce que je souhaiterais, c'est transformer ce tableau en 3 colonnes.
Les colonnes sont mes positions en x, mes lignes mes valeurs en y et les valeurs de la cellule sont mes valeurs en Z.
Ce que je souhaiterais, c'est donc faire trois colonnes : x y z.
Autrement dit, si ma valeur de la cellule C5 est 36, je souhaiterais que mon nouveau tableau indique 3 5 36.
Est-ce compréhensible? (Sachant que mon tableau fait environ 768 colonnes sur 800 lignes :))
Merci d'avance.
Pour infos, je suis sous excel 2007
Kévin.
A voir également:
- Macro pour tableau
- Tableau word - Guide
- Tableau ascii - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Trier un tableau excel - Guide
- Imprimer un tableau excel - Guide
1 réponse
Bonjour
voici le code, à recopier dans un module
j'ai supposé que les données commençaient en cellule A1
le résultat s'affiche dans la feuille 2
la durée de traitement est de l'ordre de 1mn 15 s sur mon PC
bonne réception
cdlt
voici le code, à recopier dans un module
j'ai supposé que les données commençaient en cellule A1
le résultat s'affiche dans la feuille 2
la durée de traitement est de l'ordre de 1mn 15 s sur mon PC
Sub Transformer()
Application.ScreenUpdating = False
Deb = Timer
Range("A1").Select
DerCol = ActiveCell.End(xlToRight).Column
DerLig = ActiveCell.End(xlDown).Row
ReDim Valeur(DerLig * DerCol) As String
ReDim Lig(DerLig * DerCol) As String
ReDim Col(DerLig * DerCol) As String
x = 0
For j = 1 To DerLig
For i = 1 To DerCol
x = x + 1
Valeur(x) = Cells(j, i)
Col(x) = i
Lig(x) = j
Next i
Next j
Sheets("Feuil2").Select
Cells(1, 1) = "Colonnes"
Cells(1, 2) = "Lignes"
Cells(1, 3) = "Valeurs"
Range("A2").Select
For i = 1 To x
Cells(i + 1, 1) = Col(i)
Cells(i + 1, 2) = Lig(i)
Cells(i + 1, 3) = Valeur(i)
Next i
MsgBox "Durée " & Timer - Deb & " secondes"
End Sub
bonne réception
cdlt