erreur 9 : l'indice n'appartient pas à sélection !!!!!!!!!!!!!!!!!!! - VB/VBA/VBS - Programmation
Marsh Posté le 01-12-2007 à 17:34:49
Bonsoir,
Ben oui si tab_tache = nothing c'est normal que i = 0
Ya pas de Dim, pas de param... il est défini ou ton tab_tache ?
A+
Marsh Posté le 01-12-2007 à 17:53:57
Non mais tout est défini convenablement avant, mais si tu veux je peux t'ajouter tout ça?
Marsh Posté le 03-12-2007 à 09:32:32
Un tableau qui aurait pour valeur Nothing ? hum...
Ça ressemble plutôt à un objet ça.
Marsh Posté le 01-12-2007 à 17:29:02
bonjour j'ai un pb avec mon projet.
Je cherche à importer des données d'un fichier .csv pour les stocker dans un tableau tab_tache, à l'aide d'une sub. Lorsque j'affiche une msgbox à l'intérieur de celle-ci, je vois bien que les données sont stockées, or lorque je fais appel à ce tableau dans ma sub affichage, le message d'erreur (erreur 9 : l'indice n'appartient pas à la sélection) apparait à ce niveau :
For i = 1 To UBound(tab_tache)
en plus, ça indique que i=0 et tab_tache=nothing.
J'ai vérifié plein de fois mon code et je ne vois rien du tout.
Pourriez-vous m'aider.
Merci beaucoup
Pour vous repérer, voici mon code et encore merci :
Public Sub Mise_en_place_tache_obligatoire()
Dim i As Integer
Dim comp As String
Dim Atelier As String
Dim tech As String
Dim nb_heure As Integer
Dim j As Integer
Dim heure As Integer
Dim sat As Integer
Dim jour As Integer
Dim nl As Integer
Dim nc As Integer
Workbooks("Classeur1.xlsm" ).Activate
Worksheets("Planing" ).Activate
For i = 1 To UBound(tab_tache)
'On va balayer sur tout le tableau tache
' par soucis de simplification d'écriture, on va affecter :
comp = tab_tache(i).Composant
Atelier = tab_tache(i).Atelier
tech = tab_tache(i).Technicien
jour = val(Mid(tab_tache(i).Date_debut, 1, 1))
'On va regarder sur combien d'heures s'étale la tache
nb_heure = val(tab_tache(i).Date_fin) - val(tab_tache(i).Date_debut)
For j = 1 To UBound(tab_tache(i).Sat_conc)
sat = détermination_position(tab_tache(i).Sat_conc(j))
'On affichera uniquement les taches existantes bien évidemment, d'où la condition
If tab_tache(i).Sat_conc(j) <> "" Then
nl = Nombre_ligne_a_ajouter(tab_tache(i).Date_debut)
nc = Nombre_colonne_a_ajouter(tab_tache(i).Sat_conc(j))
Range(Cells(2 + nl, 3 + nc), Cells(2 + nl + (2 * nb_heure - 1), 3 + nc)).Select
'On selectionne toutes les cellules correspondant à l'affichage pour les faire fusionner
'C'est alors qu'interviennent les petites fonctions précédentes, permettant de se déplacer à partir
'de la cellule
Fusion 'On fusionne donc toutes les cellules concernées par cette tache, il s'agit ensuite de faire tout ce
'tout ce qui touche à l'affichage, on écrit des commentaires dans les cellules
'comme le composant assemblé, le technicien et l'atelier utilisé
Cells(2 + nl, 3 + nc).Value = " Mise en place du composant " & comp & " par le technicien " & tech & " dans l'atelier " & Atelier
Cells(2 + nl, 3 + nc).Interior.Color = vbRed
Cells(2 + nl, 3 + nc).AddComment
Cells(2 + nl, 3 + nc).Comment.Visible = False
Cells(2 + nl, 3 + nc).Comment.Text Text:= _
"Ta" & Mid(comp, 2, Len(comp) - 1) & Chr(10) & comp & Chr(10) & tech & Chr(10) & Atelier
End If
Next j
Next i
'MsgBox Nombre_ligne_a_ajouter(tab_tache(1).Date_debut, "affichage" )
'MsgBox Nombre_colonne_a_ajouter(tab_tache(1).Sat_conc(5))
'For h = 5 To 8
'Next h
End Sub