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

VBA Outlook Discussion :

Fonction Replace sur Fichier Excel [OL-2010]


Sujet :

VBA Outlook

  1. #1
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 74
    Points : 47
    Points
    47
    Par défaut Fonction Replace sur Fichier Excel
    Bonjour,

    Je suis en train d 'essayer de remplacer les 0 de ma page par des n/a mais le code ci-dessous me renvois une erreure de type : Objet not recognized.
    Quelqu'un aurait il une idee ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            Excel.Application.Cells.Replace What:="0", Replacement:="n/a", LookAt:= _
            xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False

    Merci,

    Romain

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    bonjour,


    et ou est déclaré ton objet Excel ...

  3. #3
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 74
    Points : 47
    Points
    47
    Par défaut
    Bonjour,

    Voici le reste du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
          Set oXL = CreateObject("Excel.Application")
          oXL.Visible = True
             ' Get a new workbook.
          Set oWB = oXL.Workbooks.Open(Nom du fichier)
            Excel.Application.Cells.Replace What:="0", Replacement:="n/a", LookAt:= _
            xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Bonjour,

    et par quel miracle ta variable objet oXl change de nom prend le nom Excel ?

  5. #5
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 74
    Points : 47
    Points
    47
    Par défaut
    J ai change cette partie mais maintenant j ai un message d erreur : "Subscript out of range"
    Auriez vous une idee sur ce qui cause ce probleme ?

  6. #6
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Bonjour,
    Si tu veux faire du pilotage d'excel via OUTLOOK (ou une autre appli), tu dois soit ajouter une "référence" à Microsoft Excel , soit faire une déclaration tardive (late binding) c'est ce que tu as fais dans le #3
    mais attention il faut dans ce cas déclarer toutes les constantes excel !

    Et mettre oXL devant toutes les instructions Excel.

    Quand tu changes une partie de ton code, il est préférable de publier le nouveau pour que l'on puisse t'aider

  7. #7
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 74
    Points : 47
    Points
    47
    Par défaut
    J ai rajoute oSheet devant toutes les instructions excel mais il doit toujours y a avoir quelquechose que je ne saisis pas. Voici les modifications que j ai fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
      ' Start Excel and get Application object.
          Set oXl = CreateObject("Excel.Application")
          oXl.Visible = True
             ' Get a new workbook.
          Set oWB = oXl.Workbooks.Open(Repertoire)
          Set oSheet = oWB.Sheets(1)
          oSheet.Activate
            oSheet.Cells.Replace What:="0", Replacement:="n/a", LookAt:= _
            oSheet.xlPart, SearchOrder:=oSheet.xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
    Tout fonctionne bien jusque "oSheet.Activate" mais ensuite tout se corse

  8. #8
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    une constante se déclare comme cela

    Pour être sûr de ne pas en oublier il faut mettre en haut du module

    "OPTION EXPLICIT"


    essaye comme cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
      ' Start Excel and get Application object.
          Set oXl = CreateObject("Excel.Application")
          oXl.Visible = True
             ' Get a new workbook.
          Set oWB = oXl.Workbooks.Open(Repertoire)
          Set oSheet = oWB.Sheets(1)
         oXl.activate
          oSheet.Activate
            oSheet.Cells.Replace What:="0", Replacement:="n/a", LookAt:= _
            2, SearchOrder:=1, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
    Attention je ne sais pas ce que tu veux faire exactement mais avec
    LookAt=2 (xlPart)

    2010 deviendra 2n/a1n/a, à mon avis tu dois mettre xlWhole = 1

  9. #9
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 74
    Points : 47
    Points
    47
    Par défaut
    Tout fonctionne parfaitement, Merci oliv d 'avoir pris le temps.
    Bonne journee,

    Romain

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 07/06/2008, 21h20
  2. Requête sur fichier EXCEL
    Par christian51 dans le forum HyperFileSQL
    Réponses: 1
    Dernier message: 11/04/2007, 19h08
  3. fonction replace sur un double
    Par sissi25 dans le forum Langage
    Réponses: 1
    Dernier message: 05/03/2007, 18h33
  4. Motifs de cellule sur fichier Excel sur Internet
    Par wanou44 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 13/07/2006, 08h53
  5. Créer un champ en fonction d'un fichier excel
    Par nberthonneau dans le forum Access
    Réponses: 8
    Dernier message: 03/11/2004, 18h02

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