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 :

IF different de


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
    Architecte de système d'information
    Inscrit en
    Décembre 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Décembre 2013
    Messages : 51
    Par défaut IF different de
    Bonjour a tous,

    Je n'arrive pas a comprendre pourquoi mon "iF" different de <> ne fonctionne pas.
    En gros j ai une colonne avec des celulles vide. Je souhaite qu'il effectue ma recherche V que lorsau'il rencontre un nombre (cellule non vide)
    (je n'ai pas de message d'erreur cependant)

    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
    Sub exp()
    
    Dim ws As Worksheet
    
     
    Set ws = Workbooks("wk49production").Sheets("Packing Production Schedule")
    Set rng = Workbooks("deliveries macro").Worksheets("feuil1").Range("A13:C105")
    
    For x = 1 To 1000
    For y = 13 To 150
    
    On Error Resume Next
    If Workbooks("deliveries macro").Worksheets("feuil1").Cells(y, 3) <> "" Then
    ws.Cells(x, 5) = Left(ws.Cells(x, 5), 5) & "+" & "[" & Application.VLookup(ws.Cells(x, 7), rng, 3, False) & "]" & _
    "on " & Application.VLookup(Workbooks("deliveries macro").Worksheets("feuil1").Cells(10, 3), Range("C10:J10"), 1, False)
    On Error Resume Next
     
     
    End If
        Next y
        Next x
    
    End Sub

    En vous remerciant par avance.

  2. #2
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Je pense qu'après ton "Cells" il faudrait mettre ".Value"

    autrement dit la valeur de a cellule(y,3) de la feuille "feuil1" du classeur "deliveries macro" <> de vide

    ceci dit j'ai pas tester

    A+

  3. #3
    Membre très actif Avatar de Citrax
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2014
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2014
    Messages : 188
    Par défaut
    De ce que je sais la recherche verticale s'execute sur TOUTE la colonne en question. (enfin j'ai peut etre tort)

    Pour s'interesser aux cellules non vide le plus simple est :
    If <> " "

  4. #4
    Membre confirmé
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Décembre 2013
    Messages : 51
    Par défaut
    Merci a vous pour votre aide, mais ca ne fonctionne pas

  5. #5
    Membre éclairé
    Homme Profil pro
    Constructeur ossature bois
    Inscrit en
    Mars 2014
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Constructeur ossature bois
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2014
    Messages : 897
    Par défaut
    Bonjour à tous,
    Ced0802, dans ton post précédent pense à Voter car sinon les gens ne t'aiderons plus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Workbooks("deliveries macro").Worksheets("feuil1").Cells(y, 3) <> "" Then
    Essai avec ça pour voir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Workbooks("deliveries macro").Worksheets("feuil1").Cells(y, 3) Not is Empty Then
    Redit nous

  6. #6
    Membre confirmé
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Décembre 2013
    Messages : 51
    Par défaut
    Mes excuses, je ne connaissais pas le bouton.

    Merci pour vos reponses.
    J'obtiens un message d erreur avec is Empty.

    Voici ce aue j'ai essaye. Pas de message d'erreur mais aucune action.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If IsEmpty(Workbooks("deliveries macro").Worksheets("feuil1").Cells(y, 3).Value) = False Then
    Je viens d'essayer aussi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not IsEmpty(Workbooks("deliveries macro").Worksheets("feuil1").Cells(y, 3).Value) Then
    No error, mais aucune reaction

  7. #7
    Membre Expert
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Par défaut
    Bonjour,

    Deux pistes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If IsEmpty(Workbooks("deliveries macro").Worksheets("feuil1").Cells(y, 3)) = False 'une cellule vide ramène une valeur 0 je crois
    'ou
    If Workbooks("deliveries macro").Worksheets("feuil1").Cells(y, 3)) = vbNullString
    mais il y aurait bien plus efficace en passant par le Range.SpecialCells qui vous permet en une passe de sortir toutes les cellules non vides par exemple. Voir l'aide sur le sujet, ça vous évite de parcourir toutes les cellule

  8. #8
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    Bonjour,


    Au moment où tu ne devrait pas rentrer dans ton If, quelle valeur à ton y ?

    Ensuite, pourrais-tu faire un msgbox sur ta cellule :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Msgbox Workbooks("deliveries macro").Worksheets("feuil1").Cells(y, 3).value
    En remplaçant ton y par la valeur où ça coince.

    A la limite, fait même un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Msgbox len(Workbooks("deliveries macro").Worksheets("feuil1").Cells(y, 3).value)
    Voir déjà si effectivement tu n'as vraiment rien dans ta cellule ou pas.

    Si jamais ça te renvoie 1, tu fais ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Msgbox asc(Workbooks("deliveries macro").Worksheets("feuil1").Cells(y, 3).value)
    Pour savoir le code ascii du caractère de ta cellule.


    Sinon, de mon côté, j'ai arrêté d'utiliser des <> "" dans mes conditions, car ça peut porter à confusion.

    A la place, je fais plutot :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If len(Workbooks("deliveries macro").Worksheets("feuil1").Cells(y, 3).value) > 0 Then
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

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

Discussions similaires

  1. Différences entre Delphi et Visual Basic ?
    Par Anonymous dans le forum Débats sur le développement - Le Best Of
    Réponses: 75
    Dernier message: 30/03/2009, 21h09
  2. La difference entre XSL et XSLT?
    Par pantin dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 27/06/2003, 16h14
  3. Difference entre fenetre et boite de dialog
    Par billyboy dans le forum Windows
    Réponses: 2
    Dernier message: 02/06/2003, 16h43
  4. [] Difference entre MSHFlexGrid et MSFlexGrid
    Par olivierx dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 23/04/2003, 09h48
  5. Difference entre types d'Adresse IP
    Par freud dans le forum Développement
    Réponses: 3
    Dernier message: 02/03/2003, 03h06

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