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 :

Problème avec "Is not nothing" [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Octobre 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2017
    Messages : 24
    Par défaut Problème avec "Is not nothing"
    Bonjour à tous,

    Alors voilà, j'ai un petit problème avec mon code. En effet, je demande à mon programme de vérifier qu'une valeur existe dans ma base de donnée excel, dans la colonne A. Si elle existe, je dois ouvrir une message box, pour dire, "cette donnée existe déjà, souhaitez vous quand même la copier?", j'ai réussi toutes ces étapes, sauf que le programme me sort tout le temps cette alerte même si la donnée n'est pas encore présente dans la base.

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    Sub Open_MW()
     
     
    Dim MW_number As Variant
    Dim wb2 As Workbook
    Dim ligne As Long
    Dim message As String, Answer As Variant
     
    ligne = Range("A1").End(xlDown).Row + 1
     
     
    MW_number = InputBox("Please enter the MW number:")
     
    'look if the MW is already in the database
    With Sheets("Database_MW").Range("A1:A10000")
     
    Set c = .find(what:=MW, After:=Range("A2"), LookIn:=xlValues, _
            LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
            MatchCase:=True, SearchFormat:=False)
     If c Is Nothing Then 'if the margin worksheet is not in the database
         Set wb2 = Workbooks.Open("C:\Users\Jules.Matuvu\Desktop\temp file\MW" & MW_number) '& ".xls"
            Windows("MW" & MW_number & ".xlsx").Activate
            Range("B2:B7").Select
            Selection.Copy
            Windows("New project.xlsm").Activate
            Sheets("Database_MW").Cells(ligne, 1).Activate
            Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=True
     
            Windows("MW" & MW_number & ".xlsx").Activate
            Range("B11:B15").Select
            Selection.Copy
     
            Windows("New project.xlsm").Activate
            Sheets("Database_MW").Cells(ligne, 7).Activate
            Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=True
     
     
        Else
           message = "MW is already in the database, do you still want to put it?"
        Answer = MsgBox(message, vbYesNo)
        Select Case Answer 'two choices, do you still want to upload the information
            Case vbYes 'if yes, it opens and copy paste
                Set wb2 = Workbooks.Open("C:\Users\Jules.Matuvu\Desktop\temp file\MW" & MW_number) '& ".xls"
                Windows("MW" & MW_number & ".xlsx").Activate
                Range("B2:B7").Select
                Selection.Copy
                Windows("New project.xlsm").Activate
                Sheets("Database_MW").Cells(ligne, 1).Activate
                Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
                False, Transpose:=True
     
                Windows("MW" & MW_number & ".xlsx").Activate
                Range("B11:B15").Select
                Selection.Copy
     
                Windows("New project.xlsm").Activate
                Sheets("Database_MW").Cells(ligne, 7).Activate
                Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
                False, Transpose:=True
     
            Case vbNo 'if not, it exit sub
           Exit Sub
            End Select
     
     End If
     End With
     
     
    End Sub
    Je suppose que c'est une erreur de placement, mais je n'arrive pas à trouver.

    Qqn aurait-il une idée?

    Merci de votre aide
    Laurent

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 385
    Par défaut
    Bonjour laurenthino,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set c = .find(what:=MW, After:=Range("A2"), LookIn:=xlValues, _
            LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
            MatchCase:=True, SearchFormat:=False)
    Je n'ai pas testé, mais il me semble que tu cherches ce qu'il y a dans la variable MW alors que plus haut tu enregistres la valeur de l'inputbox dans une variable nommée MW_number.

  3. #3
    Membre averti
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Octobre 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2017
    Messages : 24
    Par défaut
    Citation Envoyé par mat955 Voir le message
    Bonjour laurenthino,



    Je n'ai pas testé, mais il me semble que tu cherches ce qu'il y a dans la variable MW alors que plus haut tu enregistres la valeur de l'inputbox dans une variable nommée MW_number.
    Hello Mat,

    Honte à moi Je te remercie. Ca m'apprendra à vouloir renommer mes variables en cours de route. Je te remercie!

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

Discussions similaires

  1. [Lazarus] Problème avec TSQLQuery : Field not found
    Par Biobytes dans le forum Lazarus
    Réponses: 4
    Dernier message: 15/08/2014, 22h29
  2. Réponses: 6
    Dernier message: 10/06/2011, 13h57
  3. Problème avec strptime: "does not match format"
    Par Eusebius dans le forum Général Python
    Réponses: 17
    Dernier message: 08/07/2009, 21h30
  4. Réponses: 5
    Dernier message: 13/05/2009, 19h13
  5. Formulaires : problème avec les slashes et les quotes
    Par GarGamel55 dans le forum Langage
    Réponses: 1
    Dernier message: 12/10/2005, 15h59

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