Demande d'aide VBA : tableau dynamique et importation de données

Demande d'aide VBA : tableau dynamique et importation de données - VB/VBA/VBS - Programmation

Marsh Posté le 01-09-2005 à 20:10:05    


 Bonjour à tous !
 
 Je débute en VBA, et après avoir lu un bouquin et pas mal de sites, je me susi mis à la rédaction du code.
 J'ai cependant ce problème :  
 Il faut que j'importe dans un tableaux à 2 colonens et aux nombres de lignes variables des données
 J'aimerai donc savoir  comment :  
1° Créer un tableau dynamique
2° Importer des plages de cellules
 
Merci d'avance

Reply

Marsh Posté le 01-09-2005 à 20:10:05   

Reply

Marsh Posté le 01-09-2005 à 21:02:27    

Bonsoir,
Tout dépend ce que tu veux importer, juste des valeurs ?
Dans ce cas le tableau "Array" convient parfaitement
Cette macro illustre le principe de copie d'une feuille à l'autre via un Array :
 
Il faut que la feuille1 comporte au moins 3 lignes et 2 colonnes de données.

Code :
  1. Sub Test()
  2. Dim Tablo()
  3. 'Déternination de la dernière ligne
  4. i = Cells(65535, 2).End(xlUp).Ro
  5. 'chargement des colonnes 1 et 2 dans Tablo
  6. Tablo = Range(Cells(1, 1), Cells(i, 2))
  7. 'recopie dans la feuille 2
  8. Worksheets(2).Activate
  9. Range(Cells(1, 1), Cells(i, 2)) = Tablo
  10. MsgBox "dernière valeur : " & Tablo(i, 2)
  11. End Sub

Ok ?
A+

Reply

Marsh Posté le 02-09-2005 à 13:01:07    

Merci de ta réponse
 
 Oui, il me faut simplement importer des données numériques ds le tableau  
 Pourrais-tu également me dire comment convertir un tableau en matrice pour effectuer les calculs dessus ?

Reply

Marsh Posté le 02-09-2005 à 14:01:31    

Bonjour,
Il faut préciser ta question. En VBA il n'y a pas (à ma connaissance) de notion de matrice.
Quels calculs ?
A+

Reply

Marsh Posté le 02-09-2005 à 14:05:36    

Cette macro te montre comment utiliser le tableau comme matrice :
Sub test()
Dim Montab As Variant, cmpt1 As Long, cmpt2 As Long
i = Cells(65535, 2).End(xlUp).Row'Déternination de la dernière ligne  
Montab = Range("a1:b" & i).Value 'remlissage du tableau par les valeurs
For cmpt1 = LBound(Montab, 1) To UBound(Montab, 1)'compteur sur la dimension ligne
    For cmpt2 = LBound(Montab, 2) To UBound(Montab,2) 'comteur sur la dimension colenne
'traitement sur la valeur specifié
        Montab(cmpt1, cmpt2) = Montab(cmpt1, cmpt2) + "3"
       
    Next cmpt2
Next cmpt1
'copier les valeurs du tableau vers la plage d'origine
Range("a1:b" & i).Value = Montab
End Sub
Bon chance

Reply

Marsh Posté le 04-09-2005 à 21:20:05    


 Merci à tous :)
Les calculs sont du filtrage par Stavisky-Golay à 51 points, puis deux dérivations numériques pour repérer les points d'inflexions des courbes (on repère els zéros de la deuxième dérivée par Newton) et enfin une approximation aux moindres carrés de Gauss
 QUe du bonheur quoi :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed