VBA - Problème de renvoi de chiffre vs nombre

Bonjour à tous,

J'ai mis en place une macro qui permet de rechercher un nombre défini ( 1 à 3000 par exemple), dans la colonne A d'un fichier. Ceci est ma variable "Line" dans mon code.

Ceci permet de charger la ligne de ce numéro. Puis éventuellement la supprimer par ce même type d'identification de la ligne.

Le problème lorsque je saisi le chiffre 2, cela supprime toutes les lignes dont la colonne A contient le chiffre 2, à savoir "2" "20" "21" "22" etc..

CI-dessous le code qui permet la recherche dans la colonne A du chiffre demandé et la procédure de suppression.

Je soupçonne une mauvaise déclaration de variable, mais ne suis pas capable de trouver.

J'attends vos réponses avec impatiente, car j'ai déjà 30 personnes qui utilisent le fichier et cela devient critique

Merci d'avance de votre précieuse aide !

Sub Supprimer_fiche()

'Permet de supprimer une fiche entrée dans la base de reporting personelle

'Permet d'éviter les A/R entre les feuilles lors de la copie
Application.ScreenUpdating = False

'Décalration et identification des variables
Dim Line As String
Dim FoundCell As Range

'Récupère le numéro ID à supprimer
Line = Range("K14").Value

'Positionne et supprime
Sheets("Reporting").Select
   Set FoundCell = Range("A:A").Find(what:=Line)

If FoundCell Is Nothing Then
    MsgBox "Pas de fiche correspondant au numéro trouvée"

Sheets("Formulaire").Select
Range("J14").Select

Else

'MsgBox Oui + Non
Select Case MsgBox("Vous êtes sur le point de supprimer une fiche. Etes-vous sûr?", vbYesNo, "Attention")
    Case vbYes
        'procédure si click sur Oui

    Do Until FoundCell Is Nothing
        FoundCell.EntireRow.Delete
        Set FoundCell = Range("A:A").FindNext
   Loop

'Reinitialise le formualire et la cellule

Sheets("Formulaire").Activate
Sheets("Formulaire").Range("J14").ClearContents
Range("D10:D18").ClearContents
Range("D21:D23").ClearContents
Range("D25:D30").ClearContents
Range("D32").ClearContents
Range("D34").ClearContents
Range("D37:D38").ClearContents
Range("D10").Select

    Case vbNo
        'procédure si click sur Non
Sheets("Formulaire").Range("J15").ClearContents
Sheets("Formulaire").Select
Range("D10").Select

End Select

End If

End Sub

Avec un fichier joint exemple c'est mieux =) !

Merci !

Bonjour,

le VBA ne se trompant jamais, c'est donc une erreur de conception !

Lire donc l'aide de la méthode Range.Find notamment son paramètre LookAt

Astuce : en activant le Générateur de macros puis en répondant bien à l'Assistant de la recherche,

les paramètres de cette méthode sont livrés sur un plateau !

Bonjour Marc L,

Le VBA n’exécute que ce qu'on lui demande, donc l'erreur vient bien de moi!

Merci pour la précieuse indication concernant la méthode Range.Find.

Effectivement, en ne spécifiant pas la variant facultative de LookAt:=xlWhole , VBA faisait l'impasse sur ce que je voulais !

Une erreur de conception idiote que j'aurai pu éviter si j'avais réfléchi plus loin que le bout de mon nez !

Merci encore !

Jay

Cela m'arrive aussi !

Mais le premier réflexe une fois la source identifiée de l'erreur est de consulter l'aide VBA

car la solution y est souvent déjà présente …

Qui plus est certaines méthodes comme celle-ci prennent en compte des valeurs si elles ne sont pas spécifiées

soit par défaut soit selon une précédente utilisation, assez piégeux !

Rechercher des sujets similaires à "vba probleme renvoi chiffre nombre"