Mon menu est désactivé et je ne peux pas quitter mon worksheet
Fermé
DominicRP
-
Modifié par DominicRP le 22/02/2017 à 20:19
f894009
Messages postés17239Date d'inscriptiondimanche 25 novembre 2007StatutMembreDernière intervention10 février 2025
-
23 févr. 2017 à 09:02
Bonjour,
J'ai fait une "base de donnée" avec excel car c'est l'exigence du client et puis en gros, je prend la ligne du haut et je la copie dans une ligne que je viens d'insérer à la ligne 5. Les valeurs de la ligne 1 changeront car elles seront liées par lien DDE. Je ne veux pas que le client ait la permission de modifier quoi que ce soit. Je veux qu'à tous les 15 minutes, enregistrer les valeurs de la ligne 1. J'ai écrit le code ci-dessous et tout fonctionne mais le problème est que lorsque je charge mon fichier excel une première fois, les menus du haut sont inactifs. Par la suite, lorsque je ferme ma fenetre avec le gestionnaire de tâche, il m'est impossible de le ré-ouvrir. Lorsque je double-click sur le fichier, la petite fenetre qui montre le chargement du fichier appairait mais une fois à 100%, il reste figé là et je dois quitter ce pop-op, modifier le nom du fichier et lorsque je le ré-ouvre, il s'ouvre totalement mais l'histoire se répète où je n'ai pas accès au menu, onglet et etc...
Je soupçonne le le while=true mais je ne suis pas certain.
Si c'est le cas comment fait-on pour avoir une boucle fermée, un genre de main() qui se répète?
Quelqu'un aurait une réponse?
---------------------------------------------------------------------------------------------------------
Dim timer1, timer2 As Double
Dim toujours As Boolean
Dim i As Integer
Dim date1 As Integer
Dim mois As Integer
'Macro qui insère une ligne et qui met les bordures
Feuil1.Rows("5").EntireRow.Insert
Feuil1.Range("C5:M5").Borders(xlDiagonalDown).LineStyle = xlNone
Feuil1.Range("C5:M5").Borders(xlDiagonalUp).LineStyle = xlNone
With Feuil1.Range("C5:M5").Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Feuil1.Range("C5:M5").Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Feuil1.Range("C5:M5").Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Feuil1.Range("C5:M5").Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Feuil1.Range("C5:M5").Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Feuil1.Range("C5:M5").Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
'Copie toutes les cellules du haut pour le mettre dans la ligne insérée
For i = 3 To 13
Feuil1.Cells(5, i) = Feuil1.Cells(1, i)
Next
'Mettre le format d'heure et date comme suit:
Feuil1.Cells(5, 3).NumberFormat = "m/d/yyyy"
Feuil1.Cells(5, 4).NumberFormat = "hh:mm:ss;@"
Feuil2.Cells(6, 3).NumberFormat = "m/d/yyyy"
Feuil2.Cells(7, 3).NumberFormat = "hh:mm:ss;@"
timer2 = Timer
ActiveSheet.Protect "Dom45896", True, True
End If
'Timer prendre les données tous les 15 minutes
If Timer > timer1 + 60 Then
ActiveSheet.Unprotect "Dom45896"
Feuil1.Cells(1, 3) = Date
Feuil1.Cells(1, 4) = Time