IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Vérifier si N° existe sinon message erreur


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2014
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2014
    Messages : 92
    Par défaut Vérifier si N° existe sinon message erreur
    Bonjour tout le monde,

    J'ai un petit code que je suis entrain de faire évoluer

    Pour le moment, c'est un bouton une fois que je clic dessus un 1er msgbox demande "Etes-vous sûr ?"
    Ensuite un second msgbox vient et demande un numéro de Facture pour pouvoir rechercher des infos dans la base de données (code que je doit terminer)

    MAIS

    Si dans le Msgbox j'entre un numéro de Facture soit inexistant, soit existant mais ou il n'y à pas de N° de devis apparenter à celui ci sa bug avec un message d'erreur...

    Serait il possible d'ajouter une double vérification ?

    Donc en 1er : Vérifier SI le n° de la facture existe : Sheets("Facturier").Range("A1:CC5000")
    Et en second : Vérifier si sur la même ligne du n° Facture si en colonne CB donc "80" si il existe quelque chose si OK alors on continue,
    si la case 80 est vide ou si le n° de la facture n'existe pas alors message d'erreur dans le msgbox...

    Merci




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Private Sub CommandButton22_Click()
    If MsgBox("Êtes-vous sûr ?", 36, "Confirmation") = vbYes Then
    Dim question As String
    question = InputBox("Encodage pour solder un acompte" & vbCrLf & vbCrLf & _
    "Numéro de la Facture d'acompte ?", "De l'Habitat ô Jardin")
     
    Dim num As String
     
    num = WorksheetFunction.VLookup(question, Sheets("Facturier").Range("A1:CC5000"), 80, False)
    TextBox17 = "Solde de la Facture d'acompte N° " & question
    TextBox28 = "Commande pour un montant total de : " & WorksheetFunction.VLookup(num, Sheets("Devis").Range("A1:CC5000"), 73, False) & " TVAC"
     
     
    End If
    End Sub

  2. #2
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour et bienvenu sur le Forum,

    S'il te plaît, afin de rendre le post plus lisible, balise ton code avec "#".

    A priori, tu utilises des zones de texte pour afficher une information, Un label suffirait selon moi.

    Tu ne précises pas sur quelle ligne le bug se porte.
    Je suppose que c'est la dernière.
    Il te faudrait alors tester si le n° de devis existe avant de lancer l'information.
    Pour ce faire, il te faut soit utiliser la méthode Find (mes excuses à certains), soit balayer les occurrences où se trouverait le devis.

  3. #3
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2014
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2014
    Messages : 92
    Par défaut re
    Changement, fait.

    Oui, soit sa souligne en erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    num = WorksheetFunction.VLookup(question, Sheets("Facturier").Range("A1:CC5000"), 80, False)
    Parce qu’il ne trouve pas le N° de la Facture

    Soit, il me souligne en erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TextBox28 = "Commande pour un montant total de : " & WorksheetFunction.VLookup(num, Sheets("Devis").Range("A1:CC5000"), 73, False) & " TVAC"
    Ici sa BUG car il ne trouve rien pour la "variable num"
    PK ? Parce-que pour réaliser la ligne de code ci dessus il à besoin de savoir la valeur de la variable "num" et dans certains cas sur une facture d'acompte il n'y à pas toujours de n° de devis liée avec...

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonsoir
    si j'ai compris ta demande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Dim F1 As Worksheet
    Set F1 = Sheets("feuil1")
     
    Dim i As Long
    Dim N As Integer
     
    Dim Facture As String
    If MsgBox("Êtes-vous sûr ?", 36, "Confirmation") = vbYes Then
    Facture = InputBox("Encodage pour solder un acompte" & vbCrLf & vbCrLf & _
    "Numéro de la Facture d'acompte ?", "De l'Habitat ô Jardin", 1)
    N = Application.CountIf(F1.Range("A2:A" & [A65000].End(xlUp).Row), Facture)
    If N = 0 Then MsgBox ("Facture inexistante")
    Exit Sub
     
    End If

  5. #5
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Salut,

    Hors formulaire.

    Place ce code (non testé) dans un module standard.

    Effectue les adaptations adéquates.

    Teste-le et reviens si nécessaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    Option Explicit
     
    Sub larecherche()
     
    Dim question As String
     
    If MsgBox("Êtes-vous sûr ?", 36, "Confirmation") = vbNo Then Exit Sub
     
    question = InputBox("Encodage pour solder un acompte" & vbCrLf & vbCrLf & _
                                "Numéro de la Facture d'acompte ?", "De l'Habitat ô Jardin")
     
    Dim derlign As Integer
    Dim num As String
    Dim encode As String
    Dim ledevis As String
     
    On Error Resume Next
     
    With Worksheets("Facturier")
            derlign = .Cells(.Rows.Count, 1).End(xlUp).Row
            num0 = Application.WorksheetFunction.Match(question, .Range("CB1:CB" & derlign), 0)
            If Err > 0 Then
                    MsgBox "Encodage non trouvé"
                    Exit Sub
            End If
            num = Application.WorksheetFunction.Index(.Range("A1", .Cells(derlign, 81)), num0, 80)
    End With
    encode = "Solde de la Facture d'acompte N° " & question
    With Worksheets("devis")
            derlign = .Cells(.Rows.Count, 1).End(xlUp).Row
            dev0 = Application.WorksheetFunction.Match(num, .Range("BU1:BU" & derlign), 0)
            If Err > 0 Then
                    MsgBox "Devis non trouvé"
                    Exit Sub
            End If
            ledevis = "Commande pour un montant total de : " & Application.WorksheetFunction.Index(.Range("A1", .Cells(derlign, 81)), dev0, 80) & " TVAC"
     End With
     
    On Error GoTo 0
     
    End Sub

  6. #6
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2014
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2014
    Messages : 92
    Par défaut re
    Impossible :/

    Le 1er de BENNASR est pas mal
    mais même en indiquant un n° de facture qui existe beh il me marque le msgbox qu'il n'existe pas :/

  7. #7
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Qu'est-ce qui est impossible?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 18/04/2014, 11h50
  2. Message erreur InterBase
    Par tchaman dans le forum InterBase
    Réponses: 9
    Dernier message: 01/04/2005, 15h50
  3. [g++] message erreur etrange
    Par infotron dans le forum Autres éditeurs
    Réponses: 15
    Dernier message: 19/09/2004, 23h14
  4. [FLASH MX 2004] message erreur de classe
    Par matN59 dans le forum Flash
    Réponses: 3
    Dernier message: 14/06/2004, 08h59
  5. [Kylix] message erreur à l'ex
    Par JlouisI dans le forum EDI
    Réponses: 5
    Dernier message: 08/03/2003, 17h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo