l'indice n'appartient pas à la sélection

l'indice n'appartient pas à la sélection - VB/VBA/VBS - Programmation

Marsh Posté le 22-07-2012 à 21:33:48    


 
Bonjour,
 
tout d’abord je dois préciser que je ne pratique pas VB. Je comprends un peu les instructions et les raisonnements mais c’est tout. Ci-joint le code écrit par un collègue IT pour me dépannrer : il s’agit de transférer le contenu d’une colonne provenant de 13 onglets dans 1 onglet toutes les .6 colonnes à partir de la colonne 12.
 
Quand j’ai lancé la macro pour la 1ère fois, pas de problème, mon tableau (5000 lignes par colonne à remplir) s’est bien complété. Par contre lorsque j’ai voulu renouveller l’opération, il y a tout de suite un message d’erreur : l’indice n’appartient pas à la sélection.
 
Mon collègue n’est pas en mesure de me dépanner actuellement. S’il y a parmi vous quelq’un pour me dépanner, merci d’avance. C’est pour mon activité professionnelle et je dois absolument rendre des analyses pour ce lundi.
 
 
 
 
Option Base 0
Option Explicit
 
 
Private Const FeuilleARemplir = "Annee 2011"
 
 
Private Sources(13) As String
 
 
Public Sub Boucle_Remplissage()
    Dim Ligne           As Integer
    Dim LignePersonnel  As Integer
    Dim Colonne         As Integer
   
 
    Dim Source          As Integer
         
 
    Dim TotalFaits As Integer
     
 
    Sources(0) = "Décembre N-1"
    Sources(1) = "Janvier"
    Sources(2) = "Fevrier"
    Sources(3) = "Mars"
    Sources(4) = "Avril"
    Sources(5) = "Mai"
    Sources(6) = "Juin"
    Sources(7) = "Juillet"
    Sources(8) = "Aout"
    Sources(9) = "Septembre"
    Sources(10) = "Octobre"
    Sources(11) = "Novembre"
    Sources(12) = "Décembre"
 
 
 
    Colonne = 12
 
    Application.ScreenUpdating = False
   
 
    For Source = 0 To 12
        'MsgBox Sources(Source)
       
 
        '* remplissage colonne Mois
        Ligne = 2
       
 
        TotalFaits = 0
       
 
        While Sheets(Sources(Source)).Cells(Ligne, 1) <> ""
           
 
            If Ligne Mod 200 = 0 Then
                Debug.Print Sources(Source) & " - " & Ligne
            End If
           
 
            LignePersonnel = 2
            While Trim(Sheets(FeuilleARemplir).Cells(LignePersonnel, 1)) <> Trim(Sheets(Sources(Source)).Cells(Ligne, 1)) _
                And Trim(Sheets(FeuilleARemplir).Cells(LignePersonnel, 1)) <> ""
                LignePersonnel = LignePersonnel + 1
               
            Wend
           
 
            If Trim(Sheets(FeuilleARemplir).Cells(LignePersonnel, 1)) <> "" Then
                Sheets(FeuilleARemplir).Cells(LignePersonnel, Colonne) = Sheets(Sources(Source)).Cells(Ligne, 36)
                TotalFaits = TotalFaits + 1
            Else
                Debug.Print "Matricule non trouvé: " & Sheets(Sources(Source)).Cells(Ligne, 1) & _
                            " - Feuille: " & Sources(Source) & " - Ligne " & Ligne
            End If
           
 
            Ligne = Ligne + 1
           
 
            DoEvents
 
        Wend
       
 
        Debug.Print "Total faits pour " & Sources(Source) & ": " & TotalFaits
 
        Debug.Print "----------------------------------------------------------------------------"
 
        Colonne = Colonne + 6
       
 
    Next Source
   
 
    Application.ScreenUpdating = True
 
End Sub
 

Reply

Marsh Posté le 22-07-2012 à 21:33:48   

Reply

Marsh Posté le 23-07-2012 à 08:10:46    

Bonjour,
à quelle ligne l'erreur se met-elle ?
tous les onglets "sources" ainsi que l'onglet "Annee 2011"existent bien ?


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
Reply

Marsh Posté le 23-07-2012 à 08:17:41    


Bonjour,
 
dès que je clique sur la macro, le msg est affiché. je confirme que tous les onglets sources sont créés ainsi que le destinataire : Annee 2011.
 
Je confirme aussi qu'à la 1ère utilisation la macro s'est parfaitement executée. C'est vraiment important pour moi car (13 X 5000 Lignes). Et j'ai une pression de mon sup, sachant que je n'y connais rien sauf la logique mais pas vraiement le langage.
 
Là je dois partir à mon travail et je repasse à domicile vers 12h30. si vous avez un tuyau pour me dépanner, merci d'avance. SP.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed