Bonjour à tous,
Je me présente jeune apprenti développeur, j'ai appris le VBA grâce à des forum comme celui-ci grâce auxquels j'ai tenu 1 an sans poser de question , donc MERCI à tous ceux qui font vivre ce genre de lieu !
Mon problème étant expliqué dans le titre, il ne manque que le contexte:
Je développe actuellement une application relativement grosse pour mon entreprise, l'une des partie de cette application consiste à utiliser un fichier excel en même temps à plusieurs, j'ai contourné le problème en créant à chaque ouverture un fichier personnel "fantome" copie du fichier principal.
A chaque fermeture de son fichier perso, l'original repère les différence entre lui même et le fantome puis se met à jour. je n'ai pas ré-inventer la roue, je sais bien que je ne suis pas le premier à faire ça, mais j'en suis tout de même content car ça marche plutôt bien \o/ .
Cependant, mes supérieurs veulent que lorsque deux (ou 3 ou plus) personnes utilisent ces fichier, chacun soit avertit en temps réel sur quel "ligne" du fichier excel quelqu'un travail.
Pour ce faire, j'ai décidé de changer la couleur des lignes concerné, exemple :
lorsque mr.dupont travail sur la ligne 64, alors mlle.beaumont et mr.fred voit la ligne 64 de leurs propres fichier s'illuminée en bleu.
problème : le pc m'indique "l'indice n'appartient pas à la sélection" lorsque je lui demande de changer la couleur de la ligne 64 d'un utilisateur
j'ai tenté de désactive la lecture seule, par le Shell et autre, mais même dans ce cas, ça indique la même chose..
(ps : mon code actuel fonctionne lorsque les fichiers sont tous sur le même PC)
(ps2: je suis au courant qu'en réseau, access est fait pour ça alors que pas excel, mais j'ai débuté ce projet il y à plus d'un an avec 0 connaissances en VBA et pas de cahier des charges, il est un peu tard pour changer mon système, même si je pense qu'une fois que tout fonctionnera, j'essayerai de l'optimiser et pourquoi pas utiliser Access à ce moment la....)
Merci pour le temps que vous m'accordez !
Bout de code :
Code vba : 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 ''''''''''''''''''''''''''''''''''''''''''''''fonction detection et changement de couleur repere = 0 file = Dir(ThisWorkbook.Path & "\Application*") 'tout les fichier fantome commence par "Application" Do While file <> "" 'Jusqu'à ce que la recherche soit vide If file <> ActiveWorkbook.Name Then nomfeuille = ActiveWorkbook.ActiveSheet.Name casecouleur = Sheets(nomfeuille).Range("EC" & ActiveCell.Row & ":EC" & ActiveCell.Row) Workbooks(file).Sheets(nomfeuille).Cells(casecouleur, 1).EntireRow.Font.Color = RGB(0, 255, 255) ' l'erreur se produit ici End If file = Dir 'Fichier suivant repere = repere + 1 Loop
Partager