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 :

Suppression d'une partie du contenu d'une cellule [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de lulu_MAHC
    Homme Profil pro
    Stagiaire
    Inscrit en
    Février 2016
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Stagiaire
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2016
    Messages : 53
    Par défaut Suppression d'une partie du contenu d'une cellule
    Bonjour a tous

    j'ai un excel qui contient dans ses cellules des lignes importees d'un fichier InfoPath, mais ce n'est pas tres important, mon probleme etant le suivant:

    Je souhaite supprimer tout ce qui se trouve a droite et a gauche de la donnee que je vais garder au final

    Je m'explique. Si j'ai <my:Project_Number>650062</my:Project_Number> dans ma cellule A1

    Comment faire pour tout supprimer a partir des >< pour ne garder que 650062 ?
    Je souhaite vraiment utiliser les >< comme point de depart car ca me permettrais alors de realiser l'operation sur toutes mes cellules.

    Je precice que je souhaite realizer une macro qui recherche au prealable la cellule contenant telle ou telle contenu, la transfere dans une autre cellule puis effectue le traitement en supprimant le contenu inutle. Je repete ensuite cette suite d'operation pour toutes les cellules interessantes

    D'avance merci

    Lucas

  2. #2
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    Bonjour lulu_MAHC,

    Une piste à explorer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Function Extract(ByVal s As String) As String
        Dim t$(), s1$
            t = Split(s, "</"):   s1 = t(0)
            t = Split(s1, ">"):   Extract = t(1)
    End Function
     
    Sub test()
        MsgBox Extract("<my:Project_Number>650062</my:Project_Number>")
    End Sub

  3. #3
    Membre averti Avatar de lulu_MAHC
    Homme Profil pro
    Stagiaire
    Inscrit en
    Février 2016
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Stagiaire
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2016
    Messages : 53
    Par défaut
    Je vous remercie.

    J'ai un peu adapte votre proposition a mon probleme et je pense que ca va marcher ...
    J'obtient donc le code suivant :

    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
     
    Function Extract(ByVal s As String) As String
        Dim t$(), s1$
            t = Split(s, "</"):   s1 = t(0)
            t = Split(s1, ">"):   Extract = t(1)
    End Function
     
    Sub test()
     
        Cells.Find(What:=":project_number", After:=ActiveCell, LookIn:=xlFormulas _
            , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
            MatchCase:=False, SearchFormat:=False).Activate
        ActiveCell.Select
        ActiveCell.Copy
        ActiveCell.Offset(3, 11).Range("A1").Select
        ActiveCell.PasteSpecial
     
        Extract ("Active.Cell")
     
    End Sub
    En decomposant tout avec le F8 ( oui je suis un grand debutant ahah) tout fonctionne bien mais a la derniere ligne de la function ca plante et j'obtient ce message d'erreur:
    Nom : erreur.PNG
Affichages : 700
Taille : 38,0 Ko

    J'ai cherche et c'est un problem de dimesions apparement ... mais je ne comprend pas ce que ca veut dire

  4. #4
    Membre averti Avatar de lulu_MAHC
    Homme Profil pro
    Stagiaire
    Inscrit en
    Février 2016
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Stagiaire
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2016
    Messages : 53
    Par défaut
    J'ai rebidouiller dessus hier toute l'aprem et après plusieurs essaye dans un sens et plusieurs dans l'autre je m apercois qu'en fait ce serait plutot un probleme de declaration de variable... comme si la fonction extract ne pouvait fontionner qu'avec du texte et pas avec le contenu de ma cellule et meme en mettant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Extract ("ActiveCell.Value")
    Si vous avez un conseil ...

  5. #5
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    Bonjour lulu_MAHC,

    Non ce n'est pas un problème de variable. Extract est une fonction qui a pour résultat une chaine de caractères. il faut donc faire quelque chose de ce résultat car Extract ("ActiveCell.Value") n'a pas vraiment de sens (de plus la tu traite Exctract avec la chaine "ActiveCell.Value")

    Msgbox Extract(ActiveCell.Value) serait déjà plus correct.



    Je ne sais pas ce que tu veux faire exactement, tu cherches une cellule sui contient :project_number, ok. Mais que veux tu en faire ? un remplacement dans la même cellule ou dans une autre ?


    Voila un exemple pour faire un remplacement dans la même cellule de la première valeur trouvé après la cellule active :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub test()
        Dim rg As Range
            Set rg = Cells.Find(What:=":project_number", LookAt:=xlPart)
            rg = Extract(rg)
    fin:
        Set rg = Nothing
    End Sub
    La fonction Extract n'a pas changé.

  6. #6
    Membre averti Avatar de lulu_MAHC
    Homme Profil pro
    Stagiaire
    Inscrit en
    Février 2016
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Stagiaire
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2016
    Messages : 53
    Par défaut
    Bonjour Antony,

    Oui c'est exactement ce que je voulais faire merci beaucoup. En fait mon but c'est de chercher les donnes qui m'interessent en passant par le find et par le contenu des balises . Chaque donne peut etre retrouvee grace a ca ; dans notre cas c'etait en fait le :project_number qui permettait de localiser la bonne cellule. Mon but final est d'en fait trouver la cellule interessante, de supprime le contenue inutile (tout ce qu'il y a de part et d'autre des /< > ) et d ensuite envoyer la donnee vers l'adresse de la table correspondante dans une Base de donnee Access ( qui a deja ete creee)

    Je poursuis donc mon aventure et te remercie bcp , je pense que j'ai pas finis de galerer mais c'est en forgeant qu'on devient forgeron

    Bonne journee a toi

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

Discussions similaires

  1. Suppression d'une partie du contenu d'une colonne
    Par tvd_marc.white dans le forum Langage SQL
    Réponses: 4
    Dernier message: 26/09/2011, 14h11
  2. [8i] Exporter une partie du contenu d'une table
    Par nicdo77 dans le forum Oracle
    Réponses: 1
    Dernier message: 12/12/2007, 14h59
  3. [VBA-E] Affecter une partie du contenu d'une cellule à une autre.
    Par CAFOUIN dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/02/2007, 10h03
  4. Excel : mettre une partie du contenu d'une cellule en gras
    Par cladsam dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/08/2006, 10h05
  5. [VBA-E] Inscrire dans le textbox une partie du contenu d'une cellule
    Par AliochaBada dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/08/2006, 08h06

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