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 :

[E-03]Problème tableau


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 175
    Par défaut [E-03]Problème tableau
    bonjour,


    lorsque j'exécute ce code de recherche, il me retourne une erreur
    Run-time error 1004
    Application-Defined or object-defined error

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    Private Sub cboLocalite_Change()
    Dim Plage As Range, Cell As Range
    Dim Feuille As Worksheet
    Dim Recherche As String
    Dim ligne As Integer
    Dim Tablo(483, 6)
    Dim lig As Integer
    Dim x As Integer
    
    'Nombre de colonnes pour lstTrouver
    
    lstTrouver.ColumnCount = 6
    lig = 0
    lstTrouver.Clear
    
    Recherche = cboLocalite
    If Recherche = "" Then Exit Sub
    
    For Each Feuille In Worksheets
        ligne = Worksheets(Feuille.Name).Range("e65536").End(xlUp).Row
        Set Plage = Worksheets(Feuille.Name).Range("E2:E" & ligne)
    
          For Each Cell In Plage
              If Cell.Value Like Recherche & "*" Then
                  For x = -1 To 4
                  Tablo(lig, x + 1) = Cell.Offset(0, x - 4).Value  
                  Next x
    
                 lstTrouver.List() = Tablo
                 lig = lig + 1
              End If
    
          Next Cell
    Next Feuille
    End Sub
    pour info nombre de ligne 484, colonne 6


    une idée merci
    Fichiers attachés Fichiers attachés

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé 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 : 72
    Localisation : France

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

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

    Chaque 'Cell' est en colonne E (5). Donc pour x= -1, Cell.Offset(0,x-4) pointe la colonne 5 -1 -4 = 0.
    Ce qui suffit à provoquer une erreur.

    PGZ

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Ben oui, si tu commences ta boucle par -1 et ton offset à x - 4, ton N° de colonne sera "pas bien"
    J'explique aux gens :
    Cell correspond à une cellule de la colonne 5
    Ta boucle commence à -1 donc x commence à -1. Si tu ajoutes -1 à x - 4 tu as -5 et 5 - 5 = 0 et donc cell.Offset(0, -5) c'est pas bien
    Ensuite, si tu déclares feuille as Worksheet, tu peux simplifier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim feuille as Worksheet
    For Each Feuille In Worksheets
        ligne = Feuille.Range("e65536").End(xlUp).Row
        Set Plage = Feuille.Range("E2:E" & ligne)
        '...
    Bon app'

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 175
    Par défaut
    ok ca va un peu mieux mais il ne m'affiche pas la 6ieme colonne
    dans mon listbox


    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    Private Sub cboLocalite_Change()
    Dim Plage As Range, Cell As Range
    Dim Feuille As Worksheet
    Dim Recherche As String
    Dim ligne As Integer
    Dim Tablo(483, 6)
    Dim lig As Integer
    Dim x As Integer
     
    'Nombre de colonnes pour lstTrouver
     
    lstTrouver.ColumnCount = 6
    lig = 0
    lstTrouver.Clear
     
    Recherche = cboLocalite
    If Recherche = "" Then Exit Sub
     
    For Each Feuille In Worksheets
       ligne = Worksheets(Feuille.Name).Range("e65536").End(xlUp).Row
       Set Plage = Worksheets(Feuille.Name).Range("E2:E" & ligne)
     
           For Each Cell In Plage
             If Cell.Value Like Recherche & "*" Then
                For x = 0 To 5
                 Tablo(lig, x + 1) = Cell.Offset(0, x - 4).Value
                Next x
     
               lstTrouver.List() = Tablo
               lig = lig + 1
             End If
     
           Next Cell
    Next Feuille
    End Sub

    merci

  5. #5
    pgz
    pgz est déconnecté
    Expert confirmé 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 : 72
    Localisation : France

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

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Dans une listbox, l'objet List est un tableau qui va de 0 à Count-1.
    Tu as peut-être un pb si tablo va de 1 à Count...

    PGZ

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 175
    Par défaut
    voilà pourquoi je commencais ma boucle par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for x = -1 to 4
    tablo(lig,x+1)......
    next x
    au premier passage tablo(0,0)
    je perds mon latin


    merci de ton aide

  7. #7
    pgz
    pgz est déconnecté
    Expert confirmé 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 : 72
    Localisation : France

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

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Essaie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim Tablo(0 To 482, 0 to 6) as ...
     
    ...
     
    For x = 0 To 5
             Tablo(lig, x) = Cell.Offset(0, x - 4).Value
    Next x
    PGZ

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

Discussions similaires

  1. [Tableaux] Probléme Tableau / Menu
    Par carnage_59 dans le forum Langage
    Réponses: 7
    Dernier message: 13/10/2005, 13h34
  2. Problème tableau pour une requête
    Par LE NEINDRE dans le forum Langage
    Réponses: 2
    Dernier message: 07/10/2005, 20h21
  3. Problème Tableau Sous DW
    Par Lorik dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 04/10/2005, 11h55
  4. [perl]Problème tableau indexé
    Par LE NEINDRE dans le forum Langage
    Réponses: 8
    Dernier message: 25/08/2005, 21h24
  5. [CR8] Problème tableau sur plusieurs pages???
    Par christophe28 dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 02/11/2004, 15h46

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