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 :

Incident sur instruction If


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 375
    Par défaut Incident sur instruction If
    Bonjour,

    J'aurai besoin d'une aide sur l'instruction if suivante.
    J'ai besoin de faire un test sur plusieurs cellules d'une même colonne pour cela j'ai écrit une boucle for avec une instruction if
    La boucle for s'effectue sur les cellules A4 jusqu'à A35 la valeur et numérique sauf pour la dernière cellule celle-ci et en alpha
    le if ne fonctionne pas sur la ligne qui est en alpha comment puis-je faire fonctionner le if????

    Ma procedure:

    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
    Range("A4").Select
     
    jour = Day(Date)
     
    For Each Cellule In Range("A4:A35")
     
    testcell = Cellule
    Var2 = Cellule.Row
     
    If Cells(Cellule, jour) = Cellule Then
    'Ajout de 4509 dans la nouvelle ligne en colonne B Var2
        Range("B" & Var2 & "").Select
        ActiveCell.FormulaR1C1 = "4509"
     
    Exit For
    End If

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 944
    Par défaut
    Bonjour
    avant de tester la valeur, il suffit de tester si la cellule contient du numérique, en utilisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If IsNumeric(...) Then
    ---
    End If

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 375
    Par défaut INCIDENT SUR INSTRUCTION IF
    Bonjour,

    Oui le test je le fais mais après car le but et de mettre à jour une ligne ou bien d'insérer une ligne à partir des deux tests

    Donc le premier test fait la vérification si la ligne existe à partir de la date du jour et du contenu des cellules de 01 à 31 sauf pour la dernière ligne celle-ci correspond à du texte

    Par exemple aujourd'hui nous sommes le 22 donc je test si j'ai une cellule avec le numéro 22 si elle existe je met à jour cette ligne

    Si elle n'existe pas je passe a mon second test qui vérifie si je suis sur la derniere cellule cette dernière ligne a un contenu text.
    Si la cellule et égal a du texte alors j'insère une ligne et je sort de la boucle

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bonjour,
    une petite idée !!
    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
    Sub AA()
    Dim Lig As Long
    Dim Jour As Integer
        Jour = Day(Date)
        For Lig = 1 To 31
            If TypeName(Cells(Lig, col).Value) = "String" Then
            'Ici c'est texte tu est sur la ligne avec le texte
                Stop
            Else
            'ici c'est pas du texte donc un nombre
                If Cells(Lig, 1) = Jour Then
                    Cells(Lig, 2) = "4509"
                    Exit For
                End If
            End If
        Next Lig
    End Sub
    A+

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 375
    Par défaut INCIDENT SUR INSTRUCTION IF
    Merci pour l'aide mais lorsque j'execute le programme j'ai une erreur sur la ligne du IF je te donne le message:

    Erreur d'exécution '1004'

    Erreur définie par l'application ou par l'objet

  6. #6
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Tu a initialiser Col avec la valeur de ta colonne ? sinon c'est zéro et là.. ca coince

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

Discussions similaires

  1. Problème sur instruction
    Par boula dans le forum C
    Réponses: 4
    Dernier message: 20/05/2008, 14h17
  2. Internal Compiler Error sur instruction 'delete'
    Par femtosa dans le forum C++
    Réponses: 4
    Dernier message: 11/08/2007, 12h33
  3. [C++] aide sur instruction vfd
    Par TERRIBLE dans le forum C++
    Réponses: 3
    Dernier message: 11/09/2006, 22h52
  4. [VB.NET] Information sur instruction Redim
    Par Aspic dans le forum VB.NET
    Réponses: 4
    Dernier message: 21/12/2005, 20h54
  5. Question sur instruction With imbriquée
    Par LadyWasky dans le forum Bases de données
    Réponses: 2
    Dernier message: 14/10/2005, 12h26

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