IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Eclaircissement à propos de l'utilisation des tableau VB


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Nono Sto
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 350
    Par défaut Eclaircissement à propos de l'utilisation des tableau VB
    Chères amies, chers amis du forum

    Je voudrais avoir quelques info à propos de l'utilisation des tableau:

    -quel est la méthode la plus rapide et la moins gourmande en mémoire pour remplir un tableau, la boucle ou la copie d'un range :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ReDim TabData(Nrow, Ncol) As Variant 
     
    For i = 0 To Nrow
        For j = 0 To Ncol
            TabData(i, j) = Workbooks("test.xlsm").Worksheets("test").Cells(5 + i, 1 + j).Value
        Next j
    Next i
    ou:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Dim RangeProjet As Range
    ReDim TabData(Nrow, Ncol) As Variant 
     
    Set RangeProjet = Workbooks("test.xlsm").Worksheets("test").Range(Cells(5, 1), Cells(Nrow + 5, Ncol))
     
    TabData = RangeProjet
    Je pencherais pour la première j’attends vos confirmation.

    -pour la gestion des tableau susceptible de recevoir plusieurs type de donnés.
    Est ce qui vaut mieux déclarer un tableau variant et laisser la gestion des variable à VBA, ou un tableau de string et à la fin de la macro utiliser les fonction de conversions de date, double,... si l'on connait leur type dans le tableurs.

    Merci

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Il est toujours mieux d'une affectation directe qu'une boucle.

    Pour ton cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim TabData
     
    With Workbooks("test.xlsm").Worksheets("test")
        TabData = .Range(.Cells(5, 1), .Cells(Nrow + 5, Ncol)).Value
    End With
    TabData étant un variant et dans le traitement, tu auras à être vigilent quand à l’interprétation des données.

  3. #3
    Membre éclairé Avatar de Nono Sto
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 350
    Par défaut
    Merci

    Je voulais déclarer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ReDim TabData(Nrow, Ncol) As String
    et puis, gérer avec les convertion, cepandant dans mon tableur j'ai aussi des date, des double, des string...

    Il vaut mieux que je reste sur du tableau de Variant?

Discussions similaires

  1. utiliser un tableau pour stocker des valeurs alphanum
    Par tibofo dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 26/03/2010, 09h07
  2. Réponses: 3
    Dernier message: 19/09/2009, 16h37
  3. Réponses: 2
    Dernier message: 28/05/2009, 14h44
  4. Réponses: 1
    Dernier message: 31/05/2007, 11h57
  5. Utiliser mon tableau pour copier des fichiers
    Par Paloma dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 31/10/2006, 18h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo