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 AND


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2005
    Messages : 218
    Par défaut Problème avec AND
    Bonjour

    J'ai un petit soucis sur ce script :
    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
     
    Sub Del_Special()
    Dim  c As Range
    With Sheets("Sheet1")
    Set dercel = .Cells(.Rows.Count, 2).End(xlUp)
    For Each c In .Range("A:A")
    With c
    If .Value = "MyFirstValue" And .Offset(1, 0) = "MySecondValue" Then
        .Value = ""
        .Offset(-1, 0) = ""
        .Offset(1, 0) = ""
    End If
    End With
    Next
    End With
    Il met une erreur sur la ligne 8.

    Une idée ?

    Merci par avance

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pas le temps de tester mais je placerais des parenthèses
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If (.Value = "MyFirstValue") And (.Offset(1, 0) = "MySecondValue") Then
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,

    Perso, je pense qu'il s'agit de variables donc enlever les ""
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If .Value = MyFirstValue And .Offset(1, 0) = MySecondValue Then
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2005
    Messages : 218
    Par défaut
    Bonjour corona
    J'avais essayé avec parenthèses mais idem, erreur

    Bonjour casefayere
    J'ai mis des noms en exemple entre "" mais il ne s'agit pas de variables mais bien de texte.

    Merci pour votre aide

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Après avoir testé, le problème que tu rencontres, c'est vraisemblablement que la condition n'est pas remplie et arrivé à la dernière ligne de la feuille, il ne peut plus aller une ligne plus bas (.offset,1,0)
    Je m'étais posé la question de la raison de Dercel en range. Modifie les premières lignes de ton code et ta boucle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim c As Range, dercel As Single
     With Sheets("A")
      dercel = .Cells(.Rows.count, 2).End(xlUp).row
      For Each c In .Range("A" & dercel)
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2005
    Messages : 218
    Par défaut
    Hello Corona

    En modifiant comme suivant, cela ne fait plus rien
    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
    Sub Del_Special()
    Dim c As Range, dercel As Single
    With Sheets("TEST")
    dercel = .Cells(.Rows.Count, 2).End(xlUp).Row
    For Each c In .Range("A" & dercel)
    With c
    If .Value = "MyFirstValue" And .Offset(1, 0) = "MySecondValue" Then
    .Value = ""
    .Offset(-1, 0) = ""
    .Offset(1, 0) = ""
    End If
    End With
    Next
    End With
    End Sub

  7. #7
    Membre confirmé Avatar de mentat
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Août 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Electrotechnicien
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2009
    Messages : 139
    Par défaut
    Tu as peut être la solution de passer par deux conditions If

    par contre je comprend pas ce que tu souhaite faire avec les offsets...

    .offset(numéro de ligne,numéro colonne)

    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
     
    Private Sub CommandButton1_Click()
     
    Dim c As Range
    With Sheets("feuil1")
    Set dercel = .Cells(.Rows.Count, 2).End(xlUp)
    For Each c In .Range("A1:A6")
    With c
    If .Value = "MyFirstValue" Then
        If .Offset(1, 0) = "MySecondValue" Then
            .Value = ""
            .Offset(-1, 0) = ""
            .Offset(1, 0) = ""
            End If
    End If
    End With
    Next
    End With
     
    End Sub

Discussions similaires

  1. [AC-2007] SQL problème avec AND (Erreur13 Incompatibilité de type))
    Par symbabeauchat dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 13/10/2011, 08h38
  2. [AC-2007] problème avec condition If et And
    Par Rémi GAUDINAT dans le forum VBA Access
    Réponses: 3
    Dernier message: 21/06/2010, 19h05
  3. Réponses: 2
    Dernier message: 03/03/2010, 20h49
  4. problème avec drag and drop
    Par Nayra dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 16/04/2009, 00h11
  5. MySQL : SELECT multitable avec problème de AND
    Par superyan dans le forum Langage SQL
    Réponses: 4
    Dernier message: 21/02/2007, 16h16

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