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 :

[vba-Excel]pb sur replace et find


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 102
    Points : 66
    Points
    66
    Par défaut [vba-Excel]pb sur replace et find
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Set recherche = absent.Cells.Find(codecoll & ",", absent.Cells(m, 3 + (mois - 1) * 4), xlValue, xlWhole)
     
    If Not recherche Is Nothing Then
     
      absent.Cells(m, 3 + (mois - 1) * 4).Replace What:=codecoll & ",", Replacement:=""
     
    End If
    Voila, j'ai un calendrier avec des codes personnes absentes. (codecoll). Lorsque celles-ci s'en vont, je dois supprimer toutes les références à cette entrée à partir de cette date.

    Mais qd je lance ce code on me dit que l'indice n'appartient pas a la selection. Pourquoi?

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Citation Envoyé par sk8bcn
    on me dit que l'indice n'appartient pas a la selection.
    Sur quelle ligne?

  3. #3
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 102
    Points : 66
    Points
    66
    Par défaut
    sur le set

    pourtant absent est définit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim absent As Worksheet, recherche As Range
    Set absent = Worksheets("absents")
    codecoll l'est aussi puisque l'intellisense me donne la bonne affectation de la variable. m et mois aussi (intellisense à nouveau).

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Le nom de la feuille n'est pas correct!

    Vérifie l'orthographe et/ou l'éventuelle présence d'espace devant ou derrière le nom.

  5. #5
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 102
    Points : 66
    Points
    66
    Par défaut
    ben non, en cas d'erreur de la feuille correspondante, le programme bloquerait au set, non? (j'ai testé la théorie, et c'est le cas).

    Au demeurrant: est-ce que "recherche" va me renvoyer l'adresse de absent.Cells(m, 3 + (mois - 1) * 4) ou nothing, non?

  6. #6
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Comme tu as dit "sur le Set" et que tu donnais le code du Set de ta feuille, j'ai cru que tu parlais de cette ligne.

    Vu que ce n'est pas ça, j'en conclus que c'est dans cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set recherche = absent.Cells.Find(codecoll & ",", absent.Cells(m, 3 + (mois - 1) * 4), xlValue, xlWhole)
    que tu as l'erreur.

    Ce que je peux te conseiller, alors, c'est de remplacer les variables par des valeurs "en dur" et/ou de tracer le contenu de tes variables avant l'exécution de la ligne incriminée.
    Ce qui serait aussi intéressant, vu que tu sembles être dans une boucle, c'est de savoir à quel tour de boucle l'erreur apparaît.

  7. #7
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 102
    Points : 66
    Points
    66
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set recherche = absent.Cells.Find("po,", absent.Cells(19, 35), xlValue, xlWhole)
    sachant que absent.cells(19.35)="po," (selon l'intellisense).

    j'ai remplacé la ligne incriminé par ce codage.

    Sinon le code se bloque à la premiere boucle, et le type d'erreur n'a pas changé.

    Au fait, je travaille sur excel 2002, est-ce que ça peut etre lié?

  8. #8
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 102
    Points : 66
    Points
    66
    Par défaut
    J'AI TROUVE!!!!

    J'avais copié le codage sur le texte du document d'aide de Rabilloud (au demeurrant ma "bible" ) mais en fait, il a ecrit xlvalue au lieu de xlvalues.

  9. #9
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 102
    Points : 66
    Points
    66
    Par défaut
    merci!

    j'ai ajouté le tag résolu.....jusqu'a nouvel ordre!

  10. #10
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 102
    Points : 66
    Points
    66
    Par défaut
    J'ai du retirer le résolu car, aucune erreur n'apparait à l'execution mais rien ne marche correctement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Set recherche = absent.Cells.Find(codecoll, absent.Cells(m, 4 + (mois - 1) * 4), xlValues, xlWhole)
     
            If Not recherche Is Nothing Then
     
                absent.Cells(m, 4 + (mois - 1) * 4).Replace What:=codecoll, Replacement:=""
    etrangement, recherche n'est jamais nothing. J'ai une hypothese a ce propos:
    J'ai lu que After était la derniere cellule regardée. Donc il doit certainement trouver un codecoll (la valeur de la variable) avant.

    Toutefois, le replace ne remplace rien, que la cellule contienne ou non une chaine de caractere egale a codecoll.

  11. #11
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 102
    Points : 66
    Points
    66
    Par défaut
    ok un petit progres: replace n'arrive pas a remplacer une chaine dans une chaine!!!

    donc "salut ses super"

    si je cherche à remplacer "ses" par "c'est" cela ne fonctionne pas?

    Y a t il des solutions de contournement?

  12. #12
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 102
    Points : 66
    Points
    66
    Par défaut
    ok lookat:= xlpart

    dsl de ma stupidité!

    re-résolu


    (par ailleurs, le .find ne sert à rien)

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

Discussions similaires

  1. [VBA-excel] pb sur paramètre DataOption
    Par DVano dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 10/10/2006, 16h07
  2. [VBA-Excel]Aller sur une feuille sans l'activer.
    Par bonilla dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/10/2006, 12h50
  3. [VBA-Excel]recherche sur plusiers feuilles
    Par salim_kwada dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/08/2006, 16h38
  4. [VBA Excel] problème de range avec find
    Par loacast dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/11/2005, 13h56
  5. [VBA excel] Probleme sur bouton commande
    Par RedBurn dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 22/11/2005, 10h10

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