chronologie discordante

  • Initiateur de la discussion Initiateur de la discussion infam29
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

I

infam29

Guest
Bonjour à tous
Mon problème: je gère la comptabilité d'une petite association caritative.
Des pièces comptables papier sont archivées sous classeur physique.
Jusqu'à présent je portais manuellement le N° d'ordre créé automatiquement dans le fichier Excel (ci-joint) afin de retrouver aisément ces documents.
Mais ce N° Excel n'est pas immuable en cas de tri chronologique des opérations (elles ne peuvent pas toujours être saisies chronologiquement).
Comment créer dans le fichier un N° immuable qui correspondra toujours à l'écriture manuelle sur la pièce comptable.
Merci à tous ceux qui prendront le temps de m'aider
 

Pièces jointes

Re : chronologie discordante

Solution de ROGER2327 mise en pratique et légèrement modifiée pour
- effacer le N° automatique après annulation d'une date
- décrémenter la variable MInd

If x = "" And liPos = nliServi Then 'variables préalablement initialisées
Range("B" & liPos + 1).ClearContents
MInd = MInd - 1
ThisWorkbook.Names.Add Name:="MaxIndex", RefersTo:=MInd
Application.Calculation = -4105
Exit Sub
End If


ROGER2327 aurait sans doute fait mieux mais cela fonctionne comme je le souhaitais.
Encore merci à ce dernier pour sa patience et sa compétence
Problème résolu
 
Dernière modification par un modérateur:
Re : chronologie discordante

(mon message s'étant égaré sur le site, je le répète)

Solution de ROGER2327 mise en pratique et légèrement modifiée pour
- effacer le N° automatique après annulation d'une date
- décrémenter la variable MInd
Rajout après "on error goto 0" des lignes suivantes

If x = "" And liPos = nliServi Then 'variables préalablement initianilées
Range("B" & liPos + 1).ClearContents
MInd = MInd - 1
ThisWorkbook.Names.Add Name:="MaxIndex", RefersTo:=MInd
Application.Calculation = -4105
Exit Sub
End If


ROGER aurait sans doute fait mieux mais ça fonctionne très bien
Donc PROBLÈME RÉSOLU avec mes remerciements illimités à ROGER2327 et aux autres
 
Re : chronologie discordante

Re…
Pourquoi pas ceci ?
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ltr$, ind%, col, MInd, oCel As Range, x As Object
  col = "C" 'Colonne des identifiants (1 ou "A", 2 ou "B", …, 28 ou "AB", …)
  With [B8] 'Première cellule de saisie
    col = colNum(col) - .Column
    Set x = Intersect(.Resize(Rows.Count - .Row, 1), Target)
    If Not x Is Nothing Then
      Application.Calculation = -4135
      On Error GoTo DefRef
      MInd = Evaluate(ThisWorkbook.Names("MaxIndex").Value)
      On Error GoTo 0
      For Each oCel In x.Cells
        If IsEmpty(oCel) And oCel.Offset(0, col).Value = MInd Then
          MInd = MInd - 1
          Application.EnableEvents = 0
          oCel.Offset(0, col).Value = ""
          Application.EnableEvents = 1
        ElseIf oCel.Offset(0, col).Value = "" Then
          MInd = MInd + 1
          Application.EnableEvents = 0
          oCel.Offset(0, col).Value = MInd
          Application.EnableEvents = 1
        End If
      Next oCel
      ThisWorkbook.Names.Add Name:="MaxIndex", RefersTo:=MInd
      Application.Calculation = -4105
    End If
  End With
Exit Sub
' Initialisation
DefRef:
  rst
  Resume
End Sub
(Le reste du code restant inchangé)​
ROGER2327
#4749


Dimanche 15 Sable 138 (Khurmookum du Dr Faustroll, SS)
25 Frimaire An CCXIX
2010-W50-3T13:10:12Z
 

Pièces jointes

Dernière édition:
Re : chronologie discordante

Bonjour Roger2327
En relisant mes anciens posts pour y retrouver une solution, j'ai aperçu que vous n'étiez pas content d'une absence de réponse de ma part.
Je m'en explique: ayant mis le problème comme résolu suite à votre excellent travail, je ne suis plus retourné sur le site et n'ai donc pas vu que vous aviez rajouté un élément. Comme je ne suis pas alerté par "automatisme" des réponses qui me sont faites et comme je n'accède pas au site régulièrement, votre dernière réponse est tombée dans l'oubli.
Je vous prie de m'en excuser. Il n'y avait de ma part aucun dédain ni mépris et j'ai fortement apprécié votre contribution à la résolution de la question que j'avais posée.
Encore merci (même si 3 ans se sont malheureusement écoulés) et soyez aimable de m'accorder votre absolution. Je m'engage à dire 3 "pater" et 3 "ave" 🙂
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour