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 :

Boucle pour remplir un tableau


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 1
    Par défaut Boucle pour remplir un tableau
    bonjour à tous,

    je cherche à remplir un tableau à partir des valeur d'une plage de données. Cependant une erreur d'imcompatibilité 13 survient à l'éxécution du code suivant:

    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
    Option Base 1
    
    Sub Macro3()
    Dim limitdown, limitup, limitright, compteur, i As Integer
    limitdown = Sheets("Monitor").Range("I65000").End(xlUp).Row
    limitup = Sheets("Monitor").Range("I1").End(xlDown).Row
    limitright = Sheets("Monitor").Range("AC" & limitup + 1).End(xlToLeft).Column
    Sheets("Monitor").Cells(limitup + 1, limitright).Resize(limitdown - limitup, 1).RemoveDuplicates Columns:=1, Header:=xlNo
    
    
    limitdown = Sheets("Monitor").Cells(limitup, limitright).End(xlDown).Row
    compteur = limitdown - limitup
    
    Dim tabl() as double
    Redim tabl(compteur)
    
    
    For i = 1 To compteur 
        tabl(i) = Sheets("Monitor").Cells(limitup + i, limitright).Value
    Next i
     
    End Sub
    l'erreur survient au niveau de la ligne en gras.

    Toute aide serait la bienvenue!

    Merci d'avance.

  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
    Ta variable Tabl() est déclarée comme étant Double.
    Donc, si tu as du texte par exemple, tu aura l'erreur.

    Ensuite, es-tu sur du contenu des variables limitup et limitright?

  3. #3
    Membre Expert
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Par défaut boucle pour remplir un tableau
    Bonjour BMSAR,

    j'ai fait un essai sur vers 2010. Aucune erreur 13 ou autre n'est renvoyée.
    par contre :
    - on ne sait quelle est la valeur de compteur.
    - pourquoi définir deux fois et différemment limitdown
    - il ne vide pas les deux premières cellules de la première colonne (c'est peut-être voulu).

    j'ai mis des chiffres et des lettres dans ma feuille

    cordialement

  4. #4
    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
    Citation Envoyé par nibledispo Voir le message
    j'ai mis des chiffres et des lettres dans ma feuille
    Bonjour Paul.
    Désolé de vous contredire mais faisons cette exemple
    En Feuil1:
    En A1: 125
    En A2: Paul
    En A3: 655

    Lance cette petite macro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub XXX()
    Dim Tb(1 To 3) As Double
    Dim i As Integer
     
    For i = 1 To 3
        Tb(i) = Feuil1.Range("A" & i)
    Next i
    End Sub

  5. #5
    Membre Expert
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Par défaut boucle pour remplir un tableau
    bonjour Mercatog,

    Il n'y a pas à être désolé. j'apprends en faisant des essais sur les questions posées. Sans essai accompagné d'un pas à pas, j'éprouve beaucoup de difficulté à lire un code et l’analyser.

    En effet, dans votre exemple, je retrouve bien l'erreur 13.

    Dans mon essai les valeurs littérales étaient toutes logées dans une même colonne (pas de mélange alpha et numérique). Aucune erreur ne m'a été signalée.

    Autre chose: Il est dommage que Stéfanie ait mis résolu sur son post que je suis avec intérêt depuis l'origine car j'avais des questions.

    Cordialement

Discussions similaires

  1. Comment réaliser une boucle pour remplir un tableau
    Par LVChatel dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 03/04/2009, 11h20
  2. Problème pour remplir un tableau.
    Par sandball22 dans le forum C
    Réponses: 2
    Dernier message: 02/05/2007, 14h54
  3. StringTokenizer pour remplir un tableau
    Par keumlebarbare dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 20/12/2006, 12h54
  4. Conseil pour remplir un tableau excel depuis USF
    Par zouille dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/10/2006, 11h15

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