Bonjour,
Je dois mettre en colonne une matrice numérique. Par exemple dans la première ligne j'ai des valeurs de 200 à 400 et dans la première colonne j'ai des valeurs de 300 à 500, et a l'intérieur de ce tableau a double entrée j'ai des valeurs comprise entre 0 et 10 par exemple.
J'ai utiliser le script vba de cette vidéo youtube "Comment transformer un tableau à double entrée en un tableau en 1 dimension (liste) sur Excel".
Le script fonctionne très bien si les en-tête des lignes et des colonnes sont du texte.
Dans mon cas la boucle de lecture du tableau ne fonctionne pas car ce sont aussi des valeurs numériques.
Je n'arrive pas a faire que ma boucle ne prennent pas en compte la première ligne et la première colonne du tableau.
Pouvez-vous m'aider ?
Je suis ouverte a toute autre façon de mettre une matrice en colonne !
Merci beaucoup par avance :)
Sub Macro_matrice()
' 1 - contrôler la cellule sélectionnée
If MsgBox("Avez-vous sélectionné une des céllules du tableau ?", vbYesNo) = vbNo Then
MsgBox "Veuillez sélectionner une cellule du tableau, puis relancer la macro"
Exit Sub
End If
' 2 - récupérer la plage du tableau
Dim ptableau As Range
Set ptableau = ActiveCell.CurrentRegion
MsgBox ptableau.Address
' 3 - créer la liste
Dim LigneTitre As Integer, colonneTitre As Integer
Dim ligne As Integer, colonne As Integer
Dim cellule As Range
Set cellule = Sheets("Liste").[a1]
Sheets("Liste").Cells.ClearContents
LigneTitre = ptableau.Cells(1).Row
colonneTitre = ptableau.Cells(1).Column
Dim celluleTableau As Range
For Each celluleTableau In ptableau
If Not ptableau.Cells(1).Row Then
If IsNumeric(celluleTableau) Then
cellule = Cells(celluleTableau.Row, colonneTitre)
cellule.Offset(0, 1) = Cells(LigneTitre, celluleTableau.Column)
cellule.Offset(0, 2) = celluleTableau
Set cellule = cellule.Offset(1, 0)
Else
' cellule.Offset(1, 0)
End If
End If
Next