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 :

l indice n appartient pas a la selection


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 20
    Par défaut l indice n appartient pas a la selection
    bonjour je recois un mess d erreur:
    erreur d'execution: '9'
    l indice n appartient pas à la selection¨

    mon code est le 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
    23
    24
    25
    26
        Dim numcol As Integer, numligne As Integer
        Dim nbtotalligne As Integer
        Dim nbtotalcol As Integer
        Dim i As Integer
        Dim d As Integer
        Dim colat As Integer
        
        
        
        Application.ScreenUpdating = False 'ici c est pour rendre inactif l affichage le travail de la macro
    
        On Error GoTo erreur
        
        Workbooks.Open Filename:="G:\Rapport stage\Organisation\Double et travail macro\Conversion xls\vegcdelux2l.xls"
        Application.Workbooks("vegcdelux2l.xls").Activate
        
        On Error GoTo 0         'pour dire de ne plus tenir compte du truc d erreur d avant si y en a pas eu
        
        numcol = 1          'A MODIF
        nbtotalligne = Compte_nb_lignes_non_caches(numcol)
        colat = 46
        MsgBox (nbtotalligne)
        For i = 2 To nbtotalligne
            If Worksheets("Sheet1").Cells(i, colat).Value = 0 Then ' et c est cette ligne qui me souligne:(:(:(:cry:
                Worksheets("Sheet1").Cells(i, colat).Value = 7
            End If
    je ne comprend pas bien les selection des cases dans les feuille xls pouvez vous si vous avez un truc qui explique me donner le lien.
    merci d avance

  2. #2
    Membre chevronné Avatar de J.Michel
    Inscrit en
    Septembre 2007
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 62

    Informations forums :
    Inscription : Septembre 2007
    Messages : 279
    Par défaut
    Bonjour,

    Voici déjà 3 liens utiles:
    La FAQ Excel
    Les Tutoriels
    La FAQ VBA

    Concernant ton problème, assure toi que le classeur actif contient bien la feuille "sheet1".
    Sinon active ton classeur, puis ta feuille, puis travaille avec ActiveSheet pour faire un test

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Workbooks.Open Filename:="G:\Rapport stage\Organisation\Double et travail macro\Conversion xls\vegcdelux2l.xls"
        Application.Workbooks("vegcdelux2l.xls").Activate
    Il me semble que cette ligne permet d'activer et la feuille et le classeur...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
       numcol = 1          'A MODIF
        nbtotalligne = Compte_nb_lignes_non_caches(numcol)
        colat = 46
        MsgBox (nbtotalligne)
     
        For i = 2 To nbtotalligne
            If Worksheets("Sheet1").Cells(i, colat).Value = 0 Then
                Worksheets("Sheet1").Cells(i, colat).Value = 7
            End If
        Next i
     
        Application.ScreenUpdating = True  'ici c est pour rendre actif l affichage le travail de la macro
     
    Exit Sub
    sinon je mettrai bien un Worksheets("Sheet1").Activate avant la boucle for mais ca ne marche pas! help me

  4. #4
    Membre chevronné Avatar de J.Michel
    Inscrit en
    Septembre 2007
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 62

    Informations forums :
    Inscription : Septembre 2007
    Messages : 279
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Application.Workbooks("vegcdelux2l.xls").Activate
    Cette ligne permet d'activer le classeur

    Quand tu dis
    Citation Envoyé par manphenix
    sinon je mettrai bien un Worksheets("Sheet1").Activate avant la boucle for mais ca ne marche pas! help me
    Pourquoi ça ne marche pas ?
    Quelle est l'erreur retournée ?

    Sinon essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.Worksheets("Sheet1").Activate

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 20
    Par défaut
    c'est la meme erreur qui est renvoyer, soit:

    erreur d'execution: '9'
    l indice n appartient pas à la selection

    et il me surligne Worksheets("Sheet1").Activate quand je clique sur debuggage.

    je vous remontre le 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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
     
    Sub transfo_xls_be_en_lu()
     
     
        Dim numcol As Integer, numligne As Integer
        Dim nbtotalligne As Integer
        Dim nbtotalcol As Integer
        Dim i As Integer
        Dim d As Integer
        Dim colat As Integer
     
     
        Application.ScreenUpdating = False 
        On Error GoTo erreur
     
        Workbooks.Open Filename:="G:\Rapport stage\Organisation\Double et travail macro\Conversion xls\vegcdelux2l.xls"
        Application.Workbooks("vegcdelux2l.xls").Activate
     
        numcol = 1
        nbtotalligne = Compte_nb_lignes_non_caches(numcol)
        colat = 46
        MsgBox (nbtotalligne)
        Worksheets("Sheet1").Activate
        For i = 2 To nbtotalligne
            If Worksheets("Sheet1").Cells(i, colat).Value = 0 Then
                Worksheets("Sheet1").Cells(i, colat).Value = 7
            End If
        Next i
     
        Application.ScreenUpdating = True 
    Exit Sub
     
    Application.Workbooks("vegcdelux2l.xls").Close False
    'Application.Workbooks("conversion.xls").Close False
     
    End Sub

  6. #6
    Membre chevronné Avatar de J.Michel
    Inscrit en
    Septembre 2007
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 62

    Informations forums :
    Inscription : Septembre 2007
    Messages : 279
    Par défaut
    Peux tu nous envoyer ton fichier pour mieux comprendre.
    Si nécessaire, efface les datas à ne pas divulguer

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 20
    Par défaut
    en fait je veux:
    1 ouvrir un fichier xls ( ca c'est bon )
    2 qui selectionne la seule feuille du fichier (la je suis a moitié convaincu
    car je lui ai demander dans une fonction de compter le nb de ligne sur la xeme colonne et il m'a repondu correctement)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Function Compte_nb_lignes_non_caches(numcol As Integer) As Integer
     
    Dim l As Integer, R As Integer
        R = 0
        For l = 1 To Cells(65536, numcol).End(xlUp).Row 
           If Not Rows(l) Is Nothing Then
            R = R + 1
        Next l
    '    MsgBox ("il y a " & R & " lignes visibles dans la colonne A") controle
     
        Compte_nb_lignes_non_caches = R
     
    End Function
    3 je lui demander de verifier le contenu de chaque celulle d une meme colonne.
    et si le contenu est 0 alors il doit le remplacer par 7. (et la ca merde)


    voila le fichier ou il y a la macro. voila et merci d avance
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. Erreur : l'indice n'appartient pas a la selection
    Par tamtam64 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/04/2015, 08h47
  2. [XL-2003] Erreur '0' : l'indice n'appartient pas à la selection
    Par Benjycool dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/04/2010, 15h51
  3. Erreur d'execution '9'. L'indice n'appartient pas à la selection
    Par goby45 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/02/2010, 15h09
  4. l'indice n'appartient pas a la selection
    Par nsqualli dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/12/2008, 11h04
  5. L'indice n'appartient pas à la selection (Close)
    Par Elijah37 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 31/07/2008, 14h37

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