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 :

Problème lors d'une copie de tableau [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Problème lors d'une copie de tableau
    Bonjour,
    J'ai réalisé un programme sur VBA que je souhaite optimiser car j'ai plusieurs minutes de calculs. J'utilise des feuilles Excel comme tableau et je souhaite les remplacer par des tableaux VBA. J'ai donc réaliser ce morceau de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    
    Option Base 0
    ' Déclaration des variables locales
    Dim Tab_Tmp_Dsp(40) As Single, Tab_Tmp_Dsp_5S(40) As String
    
    Sub Collision...()
    
            Application.ScreenUpdating = False
            
            With Worksheets("Calculs")
                ' Importation des valeurs dans le classeur
                        
                For i = 3 To 43
                    ' Réalisation des calculs
    		--------
    		' Copie du résultat dans un tableau temporaire
                    Tab_Tmp_Dsp(i - 3) = D_sp_ech
                Next i
    	    ' Affichage du tableau temporaire dans une feuille Excel
                Worksheets("Récapitulatif_Collisions").Range("Res_Dsp_ech").Value = Tab_Tmp_Dsp
    	    ' Calculs de la valeur min
                Worksheets("Calage_Resume").Range("Min_Dsp_ech").Value = Application.WorksheetFunction.Min(Tab_Tmp_Dsp)
            End With
    End Sub
    Je l'ai un peu simplifier car tout ce qui est calculs fonctionne comme il faut, ce qui pose problème, c'est l'importation du tableau temporaire dans Excel. Quand j'effectue la ligne en rouge, il rempli toute la plage ("Res_Dsp_ech") avec la valeur contenue dans la première case du tableau (Tab_Tmp_Dsp(0)). J'ai cherché sur internet et j'ai trouvé un site dans lequel est traité l'optimisation et ils arrivent à le faire fonctionner. La différence est que leur tableau est un variant et non un single.
    Quelqu'un aurait il une idée à me proposer ou la solution à mon problème?
    L'intérêt de cette ligne est de m'éviter de faire une boucle for pour remplir ma feuille.

    Merci d'avance pour vos réponses

    PS: J'ai oublié que la dimension du tableau et celle de la plage sont les mêmes.

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour.

    Ton tableau doit avoir 2 dimensions, même s'il ne représente que des cellules sur une seule ligne ou une seule colonne. Je te conseille aussi de l'indicer à partir de 1.

    Par exemple pour une plage de 5 cellule sur une colonne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim MonTab(1 to 5, 1 to 1) as ...
    Cordialement,

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci, effectivement un tableau à une dimension ne fonctionne pas ce que je ne comprends pas car j'ai vu dans le cours sur les variables tableaux que l'on pouvait les utiliser. J'ai plutôt l'habitude de travailler en langage C dans lequel le problème ne se pose pas.
    Serait il parce que une feuille Excel possède 2 dimensions (lignes et colonnes) qu'il faut le déclarer comme tel?

    En tout cas merci car j'ai utiliser toutes les solutions possibles et inimaginables (Redim, tableau as variant, création de plages...) et je commençais à me poser la question de ne pas optimiser mon fichier.

    Cordialement

  4. #4
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Re,
    Citation Envoyé par Florian.R Voir le message
    Serait il parce que une feuille Excel possède 2 dimensions (lignes et colonnes) qu'il faut le déclarer comme tel?
    Oui, c'est cela. C'est une spécificité Excel pas des tableaux de données.

    Si c'est OK, penses à taguer RESOLU.

    Cordialement,

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2003] Problème lors d'une copie de cellules visibles après un filtre
    Par As.Plate dans le forum Excel
    Réponses: 4
    Dernier message: 12/08/2014, 15h53
  2. [XL-2007] Problème de décimales lors d'une copie
    Par Jay-P dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/04/2010, 00h33
  3. Réponses: 4
    Dernier message: 29/06/2009, 18h02
  4. Problème Date de création lors d'une copie
    Par hybris95 dans le forum Programmation et administration système
    Réponses: 1
    Dernier message: 13/01/2009, 10h30
  5. Problème lors d'une copie
    Par Swiper dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 24/08/2007, 12h19

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