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 :

pb de condition


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
    Septembre 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 138
    Par défaut pb de condition
    bonjour!
    Dans le code suivant, si la condition n'existe pas (ie aucune cellule index,1 ne contient 1 et index,3 ne contient rien), le programme plante...je ne sais pas comment faire pour que si cette condition n'existe pas, il passe au point suivant...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    For Index = 1 To 10000
     
     If (Cells(Index, 1) = "1" And Cells(Index, 3) = "") Then
      Range(Cells(Index, 1), Cells(Index, 2)).Select
      Selection.Copy
     
    Cells(Index, 100).Select
    ActiveSheet.Paste
    End If
        Next Index

    Merci à ceux qui pourront m'aider

  2. #2
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Bonjour,

    tu devrais éviter d'utiliser Index qui est un mot réservé de VBA (voir help sur Index)

    Select est aussi à éviter car il ralenti le code.

    Et puis tu testes Index 1 et 3 et tu utilise 1 et 2 ???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    For Index = 1 To 10000
     
     If (Cells(Index, 1) = "1" And Cells(Index, 3) = "") Then
      Range(Cells(Index, 1), Cells(Index, 2)).Copy
     
      ActiveSheet.Cells(Index, 100).Paste
    
    End If
        Next Index
    Ok ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 138
    Par défaut
    ok...j ai compris pour select et paste...effectivement, c est plus rapide!
    Pour index, par koi puis je remplacer?
    Sinon, les données sont organisées comme suit :
    colonne a = 1 ou 2
    colonne b = chiffre représentant une bonne reponse
    colonne c = chiffre représentant une mauvaise reponse

    Il ne peut donc pas y avoir des chiffres dans b et c à la fois. C'est pour ca que je peux tester index,1 et index,3 et copier index,1 et index,2.

    Merci

  4. #4
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Pour index, par koi puis je remplacer?
    Par ce que tu veux, mais qui n'est pas réservé. Idx par exemple.

    Ok pour ton explication, mais si cela calle encore, qu'elle est l'erreur, quelle est l'instruction, quelle est la valeur de l'index (idx....), que valent cells(idx, 1) et cells(idx, 2).

    Es-tu certain(e) qu'il n'y a pas de ligne vide de 1 à 10000 ?

  5. #5
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour, Godzestla
    Je pense qu'il n'a plus de problème...
    Je voudrais simplement l'encourager à apprendre à "soulager" systémlatiquement sa machine ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If (Cells(Index, 1) = "1" then
      If Cells(Index, 3) = "") Then
         Range(Cells(Index, 1), Cells(Index, 2)).Copy
         ActiveSheet.Cells(Index, 100).Paste
      end if
    End If
    permettra d'éviter de faire systématiquement 2 comparaisons (en limitant la nécessité de le seconde à la vérification de la 1ère condition)
    Je sais... je sais... c'est une goutte d'eau ... mais les rivères sont formées de gouttes d'eau....

  6. #6
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Citation Envoyé par ucfoutu Voir le message
    Bonjour, Godzestla
    Je pense qu'il n'a plus de problème...
    Je voudrais simplement l'encourager à apprendre à "soulager" systémlatiquement sa machine ...

    Je sais... je sais... c'est une goutte d'eau ... mais les rivères sont formées de gouttes d'eau....
    Salut ucfoutu
    Remarque très pertinente. J'aurais du y penser

    Bonne journée.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 138
    Par défaut
    Désolé de ne pas avoir répondu plus tôt car plus d'internet à la maison...
    Problème résolu, merci à vous tous

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

Discussions similaires

  1. Condition If multiple
    Par M1000 dans le forum ASP
    Réponses: 2
    Dernier message: 01/03/2004, 13h46
  2. [MYSQL] conditions et requetes
    Par sebos63 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 26/02/2004, 16h41
  3. Condition sur debug et release
    Par xave dans le forum MFC
    Réponses: 3
    Dernier message: 04/02/2004, 15h04
  4. Condition et contenu TImage
    Par Detlev_linux dans le forum Langage
    Réponses: 6
    Dernier message: 23/12/2003, 01h00
  5. boucle avec condition d'arret changeante
    Par NicoH dans le forum Langage
    Réponses: 3
    Dernier message: 10/06/2003, 11h48

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