Il me vient une autre idée : disposez-vous d'une version Excel en français ? ou dans une autre langue ?Bonsoir,
Non, c'est un grand mystère pour moi.
Cette ligne de code ne fait rien d'exceptionnel, elle copie / colle des formules de cellules vers d'autres.
Si vous n'avez rien de confidentiel, pouvez-vous me joindre votre fichier tel qu'il est actuellement ? Sinon, pouvez-vous m'en envoyer une copie sans les données confidentielles ?
Pour finir et après quelques recherches, il semblerait que FormulaVersion:=xlReplaceFormula2 ne fonctionne que pour les version d'Excel à partir de 2019.Bonsoir,
Merci pour le commentaire.
Pour ajouter une nouvelle catégorie, est-ce que vous vous positionnez bien sur une ligne vierge en dessous de 'REVENUS' et au dessus de 'TOTAL MENSUEL' ?
Votre réponse est nécessaire pour me permettre d'identifier quelle pourrait être la cause de la difficulté que vous rencontrez.
Pour l'import de relevés de compte, essayez d'avoir d'obtenir une structure identique à celle de l'onglet 'Relevé Excel' avec des mouvements précédés d'un signe moins (-) pour les débits et plus (+) pour les crédits.
Si vous rencontrez des difficultés à ce niveau, envoyez moi un fichier avec la structure de vos relevés mais contenant bien entendu des données "bidon".
Cordialement,
.Range("C" & ligne + 1 & ":O" & ligne + 1).Replace What:="Revenus", Replacement:=fnSupprAccents(Initiale(Nom)), LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False', FormulaVersion:=xlReplaceFormula2
Bonsoir Gégé-45550,Pour finir et après quelques recherches, il semblerait que FormulaVersion:=xlReplaceFormula2 ne fonctionne que pour les version d'Excel à partir de 2019.
Essayez de modifier la ligne comme ceci :
Merci de me tenir au courant du résultatVB:.Range("C" & ligne + 1 & ":O" & ligne + 1).Replace What:="Revenus", Replacement:=fnSupprAccents(Initiale(Nom)), LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False', FormulaVersion:=xlReplaceFormula2
Bonne nuit
Cette version affiche les lignes 95 et 103 de l'onglet 'Flux réels', masquées sans raison dans la version précédente.
'On met dynamiquement à jour la liste de validation des éléments figurant dans la catégorie choisie
'
If Not Intersect(Target, Range("Journal[Catégorie]")) Is Nothing Then
If Target.Count = 1 Then
'
With Range("E" & Target.Row).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=INDIRECT($V$" & Target.Row & ")"
Bonsoir,Bonsoir,
Le retour de l'erreur 1004 : "Erreur définie par l'application ou par l'objet"...
Lorsque je tente d'ajouter des lignes dans l'onglet journal :
- la 1ère ligne s'intègre sans problème,
- c'est lors du remplissage des éléments de la 2ème ligne que ça se gâte...: l'erreur survient au moment où je renseigne la catégorie (que je sélectionne dans la liste déroulante)
Selon le débogueur, le problème est dans le déroulement de la procédure Worksheet_Change de la feuille fJournal, au niveau de la ligne ".Add Type: ..." ci-dessous :
VB:'On met dynamiquement à jour la liste de validation des éléments figurant dans la catégorie choisie ' If Not Intersect(Target, Range("Journal[Catégorie]")) Is Nothing Then If Target.Count = 1 Then ' With Range("E" & Target.Row).Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=INDIRECT($V$" & Target.Row & ")"
Cette erreur est systématique, que je renseigne ces lignes dans le journal dès l'ouverture du fichier natif téléchargé, ou que fasse un RAZ préalable du contenu du journal pour partir sur un nouveau millésime.
Y a t-il une chance pour qu'il y ait là encore incompatibilité entre cette portion de code et la version d'excel que j'utilise ?
re-bonjour,Bonsoir,
Le retour de l'erreur 1004 : "Erreur définie par l'application ou par l'objet"...
Lorsque je tente d'ajouter des lignes dans l'onglet journal :
- la 1ère ligne s'intègre sans problème,
- c'est lors du remplissage des éléments de la 2ème ligne que ça se gâte...: l'erreur survient au moment où je renseigne la catégorie (que je sélectionne dans la liste déroulante)
Selon le débogueur, le problème est dans le déroulement de la procédure Worksheet_Change de la feuille fJournal, au niveau de la ligne ".Add Type: ..." ci-dessous :
VB:'On met dynamiquement à jour la liste de validation des éléments figurant dans la catégorie choisie ' If Not Intersect(Target, Range("Journal[Catégorie]")) Is Nothing Then If Target.Count = 1 Then ' With Range("E" & Target.Row).Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=INDIRECT($V$" & Target.Row & ")"
Cette erreur est systématique, que je renseigne ces lignes dans le journal dès l'ouverture du fichier natif téléchargé, ou que fasse un RAZ préalable du contenu du journal pour partir sur un nouveau millésime.
Y a t-il une chance pour qu'il y ait là encore incompatibilité entre cette portion de code et la version d'excel que j'utilise ?
Public Sub Verification(ByVal Targete As Range)
Dim CompteLignes As Long
Dim PrecedentCompteLignes As Long
'Combien y avait-il de lignes dans le journal avant l'évènement _Change
PrecedentCompteLignes = ActiveWorkbook.CustomDocumentProperties("RowCnt").Value
'
'D'abord, on surveille si des lignes ont été supprimées. Si c'est le cas, il faudra rafraîchir la colonne V
'
CompteLignes = Sheets("Journal").ListObjects("Journal").ListRows.Count
' If CompteLignes = 0 Then Exit Sub 'Le tableau est vide
If CompteLignes < PrecedentCompteLignes Then 'si le nombre de lignes est inférieur a celui qui a été stocké précédemment lors de l'évènement _SelectionChange, au moins une ligne a été supprimée
Application.ScreenUpdating = False
'Réparation de la colonne V
RepareV PrecedentCompteLignes
'
NombreLignesJournal = CompteLignes
Application.ScreenUpdating = True
End If
'
' et on retire le surlignage si la valeur enregistrée est correcte
'
If Not Intersect(Targete, Sheets("Journal").Range("D5:E1205")) Is Nothing Then
If Targete.Count = 1 Then
ControleCoherence Targete
End If
End If
StockInCDP "RowCnt", Sheets("Journal").ListObjects("Journal").ListRows.Count 'Stocke dans les propriétés particulières du classeur une variable baptisée "RowCnt" dont la valeur est le nombre de lignes du journal
End Sub
Sub RepareV(Optional nbLignes&)
Dim fin As Long
If nbLignes <> 0 Then
fin = nbLignes
Else
fin = Sheets("Journal").Range("Journal").ListObject.ListRows.Count
End If
With Sheets("Journal").Range("V4")
.AutoFill Destination:=Sheets("Journal").Range("V4:V" & fin + 4)
End With
End Sub
Corrige une "faiblesse" du programme dans le cas, improbable, où l'on supprime toutes les lignes du journal sans passer par le bouton dédié de l'onglet 'Flux prévus'.
Corrige une "faiblesse" du programme dans le cas, improbable, où l'on supprime toutes les lignes du journal sans passer par le bouton dédié de l'onglet 'Flux prévus'.
Nouvelle version de 'RepareV' dans le module 'Actions TS'Gégé-45550 a mis à jour Gestion Compte bancaire et budget personnel avec une nouvelle entrée de mise à jour:
Gestion Compte bancaire et budget personnel V 2.22
Lire le reste de cette entrée de mise à jour...
Sub RepareV(Optional nbLignes&)
Dim fin As Long
If nbLignes <> 0 Then
fin = 1496
Else
fin = Sheets("Journal").Range("Journal").ListObject.ListRows.Count
End If
With Sheets("Journal").Range("V4")
.AutoFill Destination:=Sheets("Journal").Range("V4:V" & fin + 4)
End With
End Sub
'Callback for rBancaire onAction
Public Sub GotorBancaire(ByVal control As IRibbonControl)
Sheets("Relevés bancaires").Activate
End Sub
'Callback for relExcel onAction
Public Sub GotorelExcel(ByVal control As IRibbonControl)
Sheets("Relevé Excel").Activate
End Sub
'Callback for relPDF onAction
Public Sub GotorelPDF(ByVal control As IRibbonControl)
Sheets("Relevé PDF").Activate
End Sub
@cristobal61Bonjour Gégé-45550,
Merci de votre réponse.
Je n'ai pas encore eu l'occasion de tester votre code, mais vous fait part d'une autre observation faite entre temps.
Lorsque je remplis la ligne 19 du journal, la formule en cellule V19 fait référence à la cellule D19 (dans laquelle on sélectionne la catégorie).
La formule en V20 fait alors bien référence à D20.
Jusque là tout est normal...
Une fois la ligne 19 complétée, dès que la cellule active passe en A20 : la formule en V20 ne fait plus référence à D20 mais à D21, qui par définition est donc une cellule vide.
Il semble donc bien y avoir une incohérence de ce côté là...
Est-ce que cela coïncide avec les 2 modifications que vous avez proposé dans les codes des procédures ?
En attendant de tester votre proposition de code...
Autre retour d'expérience, qui n'a rien à voir :
La navigation dans les onglets, via le ruban, ne fonctionne pas pour accéder aux onglets " Relevés bancaires", "Relevé Excel" et "Relevé PDF" : exécution de la macro "xxxxxxxx" impossible.
Je n'ai pas trouvé les 3 macros concernées dans le code.
Pour tous les autres onglets proposés, la navigation fonctionne .
Merci.
Corrige une "faiblesse" du programme dans le cas, improbable, où l'on supprime toutes les lignes du journal sans passer par le bouton dédié de l'onglet 'Flux prévus'.