Nouvelle sur ce forum je sollicite votre aide pour résoudre les difficultés que je rencontre dans un tableau de suivi de CA ;
J'ai enregistré une formule qui prend en considération la couleur du fond de cellule pour soustraire le montant de la cellule coloré à une autre cellule. Or le calcul automatique ne fonctionne pas. J'ai vérifier la coche est bien activée de calcul automatique dans Option / Formule de ma feuille de calcul. Et pourtant c'est comme si l'option ne fonctionne pas. j'ai également vérifier que les cellules sont bien en format nombre... mais rien ne change.
Est-ce que quelqu'un peut regarder dans la pièce jointe?
L'idée est lorsque la facturation est faite, la cellule contenant le montant facturé est en fond rouge. cependant, je suis obligée à chaque fois de procéder au calcul automatique manuellement.
Et seconde question : lorsque je veux insérer une ligne supplémentaire dans mon tableau elle apparait sans dupliquer les formules de calcul ou fonction : Comment puis-je insérer une ligne en dupliquant ?
D'avance merci pour votre aide et la générosité du partage...
Bonjour Bouteille à la mer, le Forum
Pour le calcul automatique ajouter ceci dans le code de la feuille
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.Calculate
End Sub
Pour insérer une ligne automatiquement avec les formules, il existe un truc tout simple qui je l'espère pourra t'aider, c'est d'utiliser l'outil "Tableau" d'Excel.
Sur Excel 2007 ou plus, sélectionne ta zone, puis dans le menu Accueil, clique dans le ruban sur "Mettre sous forme de tableau" ( n'oublie pas de cocher la case "Mon tableau comporte des en-têtes").
Ensuite, tu verras que comme par magie, dès que tu saisis une donnée après la dernière ligne, elle est automatiquement intégrée à ton "Tableau", et de même, les formules s'ajustent toute seules sans avoir quoi que ce soit à faire.
Le seul inconvénient à cela il faut juste une seule ligne d'entête et sans cellules fusionnées.
Bonjour Bouteille à la mer, le Forum
Pour le calcul automatique ajouter ceci dans le code de la feuille
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.Calculate
End Sub
Pour insérer une ligne automatiquement avec les formules, il existe un truc tout simple qui je l'espère pourra t'aider, c'est d'utiliser l'outil "Tableau" d'Excel.
Sur Excel 2007 ou plus, sélectionne ta zone, puis dans le menu Accueil, clique dans le ruban sur "Mettre sous forme de tableau" ( n'oublie pas de cocher la case "Mon tableau comporte des en-têtes").
Ensuite, tu verras que comme par magie, dès que tu saisis une donnée après la dernière ligne, elle est automatiquement intégrée à ton "Tableau", et de même, les formules s'ajustent toute seules sans avoir quoi que ce soit à faire.
Le seul inconvénient à cela il faut juste une seule ligne d'entête et sans cellules fusionnées.
Un changement de couleur n'est pas associé à un évènement qu'on peut gérer en VBA. Un pis-aller est de lancer toutes les n secondes un calcul automatique qui recalculera le classeur. Pour cela, on lance le processus de calcul à intervalle régulier l'ouverture du classeur et on arrête ce processus à la fermeture du classeur. Le code se trouve dans les modules de ThisWorkbook et de module2. L'intervalle entre deux recalculs est défini via la constante delai dans module2
ThisWorkbook:
VB:
' à l'ouverture du fichier on lance le calcul périodique via la sub Encore()
Private Sub Workbook_Open()
Encore
End Sub
' à la fermeture du fichier on arrête le calcul périodique via la sub Arret()
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Arret
End Sub
Le code dans module2:
VB:
Option Explicit
Const delai = 3 ' délai entre deux calculs périodiques (en seconde)
Public prochain ' heure du prochain calcul périodique
Sub Encore()
Arret ' on arrête le processus de calcul périodique
prochain = Now() + 1 / 86400 * delai ' date du prochain calcul forcé
Application.OnTime prochain, "Encore", , True ' on relance le calcul périodique
End Sub
Sub Arret()
' arrêter le processus de calcul périodique
' et procéder à un dernier calcul de mise à jour
On Error Resume Next
Application.OnTime prochain, "Encore", , False
On Error GoTo 0
Application.Calculate ' on force un dernier calcul
End Sub
Un changement de couleur n'est pas associé à un évènement qu'on peut gérer en VBA. Un pis-aller est de lancer toutes les n secondes un calcul automatique qui recalculera le classeur. Pour cela, on lance le processus de calcul à intervalle régulier l'ouverture du classeur et on arrête ce processus à la fermeture du classeur. Le code se trouve dans les modules de ThisWorkbook et de module2. L'intervalle entre deux recalculs est défini via la constante delai dans module2
ThisWorkbook:
VB:
' à l'ouverture du fichier on lance le calcul périodique via la sub Encore()
Private Sub Workbook_Open()
Encore
End Sub
' à la fermeture du fichier on arrête le calcul périodique via la sub Arret()
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Arret
End Sub
Le code dans module2:
VB:
Option Explicit
Const delai = 3 ' délai entre deux calculs périodiques (en seconde)
Public prochain ' heure du prochain calcul périodique
Sub Encore()
Arret ' on arrête le processus de calcul périodique
prochain = Now() + 1 / 86400 * delai ' date du prochain calcul forcé
Application.OnTime prochain, "Encore", , True ' on relance le calcul périodique
End Sub
Sub Arret()
' arrêter le processus de calcul périodique
' et procéder à un dernier calcul de mise à jour
On Error Resume Next
Application.OnTime prochain, "Encore", , False
On Error GoTo 0
Application.Calculate ' on force un dernier calcul
End Sub