copier un matrice dans une feuille

  • Initiateur de la discussion Initiateur de la discussion annie
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

annie

Guest
Bonjour,

Je n'arrive pas à copier les valeur d'une martice memorisé dans une feuille excel.

Merci pour vetre aide

Annie
 
Je m'explique :


par exemple, j'ai une martice :

(125 122)
(168 483)
(095 543)

elle est saisie avec VBA : dim mat(3,2) as double

je souhaite avoir une commande pour "coller" cette matrice dans une feuille excel :

range("A1") = mat(1,1)
range("B1") = mat(1,2)

...


Voilà, mais comment rendre ceci moins manuel, pour que l'opération puisse se reproduire quelque soit la taille de la matrice ...


Merci

Annie
 
alors là, rien de plus simple, Excel est prévu pour. Pour cela il suffit que ta matrice soit du type Matrice(NbLignes, Nbcols)
donc en VBA tu peux faire :

Matrice = Range("A2😀7") 'si tu veux récupérer les données directement
travail sur ta matrice...

ensuite, tout simplement pour la réinjecter :

Range("A2😀7") = Matrice

et voilà
 
voici mon code .... et mon problème :


Sub edition_xls()
Dim i, j As Integer

For i = 1 To nb_pt_cam '\ nb_pt_cam variable du programme
For j = 1 To 2
MsgBox "coord i " & i & " et j " & j & " nombre : " & coord_pixel_cam(i, j), vbInformation, "test" '\ pour verifier qu'il y a ce que je veux dans la matrice
Next
Next

Range("A1:B" & nb_pt_cam) = coord_pixel_cam

Range("A1").Select


End Sub

en lui rentrant nb_pt_cam = 2, et

1 2
3 4 comme matrice, Excel écrit :



0 0
0 1 ......


Savez vous résoudre ceci ?

Merci

Annie
 
tout d'abord, il y a une chose dont tu dois t'assurer, c'est que ton tableau coord_pixel_cam soit bien de base 1 (c'est à dire que les indices commencent à 1 et non pas à 0 comme c'est le cas par défaut dans VBA, mais pas dans Excel)

Ainsi, si tu définis explicitement la taille de ta matrice (comme dans le premier exemple que tu as donné), tu dois le faire comme ceci :

Dim coord_pixel_cam(1 To 3, 1 To 2)

par la suite, je te conseille de définir une variable Range que tu initialiseras à la taille de ta matrice :

Dim Plage As Range

Set Plage = Range("A1").Resize(Ubound(coord_pixel_cam,1),Ubound(coord_pixel_cam,2))
Plage = coord_pixel_cam
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
10
Affichages
271
Réponses
5
Affichages
169
Retour