Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Gestion des chèques

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 !

13GIBE59

XLDnaute Accro
Bonsoir à toutes et à tous.

Dans mon livre de comptes, je voudrais gérer mes chèques. 😡

Dans la colonne B du fichier joint, j'inscris, pas forcément dans toutes les cellules car il existe d'autres formes d'opérations, les numéros des chèques émis.

Je souhaiterais faire apparaître une msgbox d'erreur si 2 numéros de chèques ne se suivent pas ou si il existe une redondance (mêmes numéros).
Tout est possible en vba, mais je débute, et je suis toujours nul !😕

Merci d'avance.🙂
A+

JB
 

Pièces jointes

Re : Gestion des chèques

Bonsoir Gibes,

Je te proposes la macro événementielle Change suivante :


Code:
Private Sub Worksheet_Change(ByVal Target As Range) 'à l'édition dans une cellule

Dim cel As Range 'déclare la variable cel (CELlule)
Dim pl As Range 'déclare la variable pl (PLage)

'si la colonne éditée n'est pas la colonne B ou
'si la cellule est éffacée, sort de la procédure
If Target.Column <> 2 Or Target.Value = "" Then Exit Sub

'*********************
'détection de doublons
'*********************

'définit la plage pl
Set pl = Range("B1:B" & Range("B65536").End(xlUp).Row)

'condition : si il existe plus d'une seule occurrence dans la plage pl
If Application.WorksheetFunction.CountIf(pl, Target.Value) > 1 Then
    'message avec l'adresse de la première occurrance
    MsgBox "Erreur : Nº Identique en : " & pl.Find(Target.Value).Address(0, 0)
    Target.Select 'sélectionne la cellule éditée
    Exit Sub 'sort de la procédure
End If 'fin de la condition


'*******************************
'détection de numéros non suivis
'*******************************

'définit la cellule de la valeur précedente
If Target.Offset(-1, 0).Value <> "" Then 'condition : si la cellule du dessus n'est pas vide
    Set cel = Target.Offset(-1, 0) 'définit la cellule precédente cel (la cellule juste au dessus)
Else 'sinon
    Set cel = Target.End(xlUp) 'définit la cellule précédente cel (le première cellule non vide rencontrée)
End If 'fin de la condition

'condition : si la valeur de la cellule éditée n'est pas la valeur de la cellule précédente + 1
If CLng(Target) <> CLng(cel) + 1 Then
    MsgBox "Erreur : manque le numéro " & CLng(cel) + 1 'message indiquant le numéro manquant
    Target.Select 'sélectionne la cellule éditée
End If 'fin de la condition

End Sub

Petit problème... Le jour où tu vas faire une erreur sur un chèque et le détruire il faudra que tu le rentres quand même sur ton fichier...

Édition :
Bonsoir Catrice on s'est croisé
 

Pièces jointes

Dernière édition:
Re : Gestion des chèques

Bonsoir à tous.😛

Dans l'ordre merci à Catrice😉, je ne pense jamais aux MFC; cela dit la formule de ta seconde MFC va me prendre un certain temps de compréhension...

Puis merci à ROBERT 😀pour son code bien chiadé qui va me prendre 10 fois plus de temps à comprendre !😕

A +

JB
 
- 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

Discussions similaires

K
Réponses
13
Affichages
3 K
Kivlov
K
L
Réponses
1
Affichages
629
B
Réponses
2
Affichages
2 K
B
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…