coco_lapin
XLDnaute Impliqué
Bonjour le forum,
Je n'arrive pas à utiliser des variables pour dimensionner des tableaux. Je suis obligé de passer par des constantes ce qui ne répond pas à mon besoin.
( Private Const Lig_min As Integer = 2 et Private Const Lig_max As Integer = 10 dans mon application)
J'ai essayé avec des tableaux variants temporaires mais sans succès.
Je vous joins mon code qui fonctionne sans utiliser les tableaux variants temporaires et un classeur exemple.
Je n'arrive pas à utiliser des variables pour dimensionner des tableaux. Je suis obligé de passer par des constantes ce qui ne répond pas à mon besoin.
( Private Const Lig_min As Integer = 2 et Private Const Lig_max As Integer = 10 dans mon application)
J'ai essayé avec des tableaux variants temporaires mais sans succès.
Je vous joins mon code qui fonctionne sans utiliser les tableaux variants temporaires et un classeur exemple.
Code:
Private Const Lig_min As Integer = 2
Private Const Lig_max As Integer = 10
Sub Doublon_tache_1()
'Cette macro permet de détecter les doublons d'OF
'Elle utilise des tableaux à 1 dimension
'Remarque: pour que cela fonctionne il faut que Lig_min et Lig_max soient des constantes donc passer par Private Const Lig_min As Integer = 2
'ce qui n'est pas le cas pour mon application
'Dim Lig_min As Integer
'Dim Lig_max As Integer
'Lig_min = 2
'Lig_min = 10
Dim Tab_tache(Lig_min To Lig_max)
Dim Tab_indice(Lig_min To Lig_max)
'Chargement des tâches et indices dans des tableaux
For I = Lig_min To Lig_max
Tab_tache(I) = Cells(I, 1)
Tab_indice(I) = Cells(I, 2)
Next I
'Comparaison
For I = Lig_min To Lig_max
For J = I + 1 To Lig_max
If Tab_tache(I) = Tab_tache(J) And Tab_indice(I) = Tab_indice(J) Then
Réponse = MsgBox("Un doublon sur la tâche " & Tab_tache(I) & " a été détecté aux lignes " & I & " et " & J & " de l'onglet ''feuille'' ." & Chr(10) & Chr(10) & "Voulez-vous le traiter maintenant? Si vous répondez ''Oui'' le traitement de cette macro sera arrêté.", vbYesNo)
If Réponse = vbYes Then
'Application.ActiveWorkbook.Close
'Application.StatusBar = ""
Exit Sub
End If
End If
Next J
Next I
End Sub
Pièces jointes
Dernière édition: