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

  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

  8. #8
    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
    Cela ne change rien

    Il manque toujours la colonne f dans la listbox

    je renvoie le fichier
    Fichiers attachés Fichiers attachés

  9. #9
    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
    Je reprends le code de pgz
    On part de la colonne de Cell, càd la colonne 5
    Tablo(lig, 1) = Cell.Offset(0, 0 - 4).Value 'colonne 5 -4 = 1
    Tablo(lig, 1) = Cell.Offset(0, 1 - 4).Value 'colonne 5 -3 = 2
    Tablo(lig, 1) = Cell.Offset(0, 2 - 4).Value 'colonne 5 -2 = 3
    Tablo(lig, 1) = Cell.Offset(0, 3 - 4).Value 'colonne 5 -1 = 4
    Tablo(lig, 1) = Cell.Offset(0, 4 - 4).Value 'colonne 5 -0 = 5
    Tablo(lig, 1) = Cell.Offset(0, 5 - 4).Value 'colonne 5 +1 = 6

    Conclusion ? Soit ta colonne 6 n'existe pas dans ta liste mais comme tu as mis "lstTrouver.ColumnCount = 6"...
    Il reste trois possibilités : Une largeur de listbox insuffisante, une largeur de colonne 6 insuffisante ou les deux...
    Bonne soirée

  10. #10
    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
    Tu as fait ce que je te proposais dans le message précédent?
    Moi je l'ai fait et ça marche.

    L'initialisation du formulaire est longue, je trouve.

    PGZ

  11. #11
    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 pgz


    je n'avais vu le changement dans la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Tablo(lig, x) = Cell.Offset(0, x - 4).Value
    Autant pour moi

  12. #12
    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
    Citation Envoyé par stargates Voir le message
    Autant pour moi
    Et au temps en emporte l'évent.

    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