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 :

Tableau : L'indice n'appartient pas à la selection [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2013
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2013
    Messages : 30
    Par défaut Tableau : L'indice n'appartient pas à la selection
    Bonjour,

    Dans mon sheet "zatox" je cherche à faire la soustraction suivante et pour chaque ligne non vide via un tableau pour éviter un temps de traitement trop long:

    C1 - D1 = résultat en F1
    C2 - D2 = résultat en F2
    etc..

    Cependant, j'ai une erreur sur la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Tableau(6, z) = Tableau(3, z) - Tableau(4, z)
    Excel me dit « Erreur d'exécution 9 : L'indice n'appartient pas à la selection».

    Je pense qu'il me manque le référencement des cellules pour la soustraction mais je ne sais pas comment le faire...

    Si quelqu'un peut m'aider svp, merci !

    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
     
    Sub tab_sous()
     
    Dim Tableau()
    Dim z As Integer
    Dim dernligne As Integer
     
    Worksheets("zatox").Range("F2").Activate
    With Workbooks("v1.xlsm").Worksheets("zatox")
        dernligne = .Cells(.Rows.Count, 1).End(xlUp).Row
     
    ReDim Preserve Tableau(1 To 1, 1 To dernligne)
     
    For z = 2 To dernligne
        Tableau(6, z) = Tableau(3, z) - Tableau(4, z)
    Next z
     
    End With
     
    'collage du tableau
    Workbooks("v1.xlsm").Worksheets("zatox").Range("F2").Select
    Set colltab = ActiveCell.Range(Cells(1, 1), Cells(UBound(Tableau, 1)))
    colltab = Application.WorksheetFunction.Transpose(Tableau)
     
    End Sub

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Tab_Sous()
    Dim DernLigne As Long, z As Long
    Dim Tableau
     
    With ThisWorkbook.Worksheets("zatox")
        DernLigne = .Cells(.Rows.Count, 1).End(xlUp).Row
        Tableau = .Range("C2:F" & DernLigne)
     
        For z = 1 To UBound(Tableau, 1)
            Tableau(z, 4) = Tableau(z, 1) - Tableau(z, 2)
        Next z
        .Range("C2:F" & DernLigne) = Tableau
    End With
    End Sub

  3. #3
    Membre averti
    Inscrit en
    Août 2013
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2013
    Messages : 30
    Par défaut
    Hello Mercatog,

    Merci pour ta réponse qui marche au top !

    Or, un nouveau problèmes :

    - Par exemple avec : C1 - D1 = (42 - (-235,28)) = - 191

    ==> Le résultat ne s'affiche pas décimalisé dans la cellule.

    Cependant, certaines valeurs ne doivent pas être décimalisées... je ne peux donc pas par exemple utiliser un "NumberFormat = "0.00" " sur la colonne des résultats.

    J'ai remarqué que si je passe par une soustraction simple "C1-D1" sans passer par un tableau les résultat sont décimalisés quand il le faut. Mais avec cette solution le temps de traitement est bien plus long...

    As tu une solution ? sinon je laisserai ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    ub Tab_Sous()
     
    Dim DernLigne As Long
     
    With Workbooks("v1.xlsm").Worksheets("zatox")
    DernLigne = .Cells(.Rows.Count, 1).End(xlUp).Row
    End With
     
        Range("F2").FormulaR1C1 = "=RC[-3]-RC[-2]"
        Range("F2").AutoFill Destination:=Range("F2:F" & DernLigne), Type:=xlFillDefault
     
    End Sub

  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
    - Par exemple avec : C1 - D1 = (42 - (-235,28)) = - 191


    Quel est le format de la colonne F?

    Sinon, pour par formule, le code sera
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Tab_Sous2()
    Dim DernLigne As Long
     
    Application.ScreenUpdating = False
    With ThisWorkbook.Worksheets("zatox")
        DernLigne = .Cells(.Rows.Count, 1).End(xlUp).Row
        With .Range("F2:F" & DernLigne)
            .FormulaR1C1 = "=RC[-3]-RC[-2]"
            .Value = .Value
        End With
    End With
    End Sub

  5. #5
    Membre averti
    Inscrit en
    Août 2013
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2013
    Messages : 30
    Par défaut
    Hello Mercatog,

    Je n'avais pas pensé à appliquer la formule au tableau

    Merci, ca marche au poil !

    Bonne semaine

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

Discussions similaires

  1. l'indice n'appartient pas à la selection erreur 9
    Par sof78 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 10/08/2011, 11h19
  2. [XL-2003] Problème VBA générant du code VBA "l'indice n'appartient pas à la selection"
    Par Access Newbie dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 21/06/2011, 09h46
  3. [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
  4. 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
  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