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 :

Insérer un mot tous les 100 mots [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Femme Profil pro
    Responsable marketing opérationnel
    Inscrit en
    Octobre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable marketing opérationnel
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 9
    Points : 3
    Points
    3
    Par défaut Insérer un mot tous les 100 mots
    Bonjour,

    Je suis perdue!! Voila mon problème: J'ai une cellule avec un texte d'environs 1000 mots et j'aimerais insérer un mot clé tous les 100 mots.

    A l'heure actuelle, cette manipulation me prend pas mal de temps et je me demandais si il existait un moyen d'automatiser cela.

    Merci pour votre aide

  2. #2
    Membre éclairé Avatar de Nako_lito
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2008
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 793
    Points : 827
    Points
    827
    Par défaut
    tu peux utiliser la méthode Split pour créer un tableau de données.

    Ensuite, tu prends ce même tableau et tu fais une boucle dessus (boucle For par exemple)

    Et toute les 100 itération, tu insère ton mot.

    grosso modo, ca peut ressembler à ça :

    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
    21
    22
    23
    24
    Public Sub toto()
     
        Dim myArray()       As String
        Dim myString        As String
        Dim i               As Integer
        Dim myFinalString   As String
        Dim specialWord     As String
     
        myString = "je suis un petit développeur qui veux aider les gens sur les forums et je compte bien réussir ma mission alors soyez indulgent"
        mySpecialWord = ","
        myArray = Split(myString, " ")
     
        myFinalString = vbNullString
     
        For i = 0 To UBound(myArray)
            If i Mod 10 = 0 And i > 1 Then
                myFinalString = myFinalString & " " & mySpecialWord
            End If
            myFinalString = myFinalString & " " & myArray(i)
        Next
     
        MsgBox myFinalString, vbOKOnly
     
    End Sub
    Il y a aussi la possibilité du step 10 pour la boucle FOR mais je ne suis pas super a l'aise avec donc pour pas dire de bétises, je m'abstiens. Peu être d'autre forumeur sauront te conseiller son usage.

  3. #3
    Candidat au Club
    Femme Profil pro
    Responsable marketing opérationnel
    Inscrit en
    Octobre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable marketing opérationnel
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Merci pour ton aide.

    Cela fonctionne en utilisant ce code :
    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
    21
    22
    23
    24
    25
    26
    Sub toto()
     
        Dim myArray()       As String
        Dim myString        As String
        Dim i               As Integer
        Dim myFinalString   As String
        Dim specialWord     As String
        ActiveCell.Value = myString
     
        myString = Range("A1").Value
        mySpecialWord = "test"
        myArray = Split(myString, " ")
     
        myFinalString = Range("A2").Value
     
        For i = 0 To UBound(myArray)
            If i Mod 2 = 0 And i > 1 Then
                myFinalString = myFinalString & " " & mySpecialWord
            End If
            myFinalString = myFinalString & " " & myArray(i)
     
        Next
     
        MsgBox myFinalString, vbOKOnly
     
    End Sub
    Mon probleme maintenant est que le resultat apparait seulement dans la boite de dialogue (MsgBox) et j'aimerai que cela s'affiche par exemple dans la celulle A2

    Cela est-il possible ?

    Un grand merci

  4. #4
    Membre éclairé Avatar de Nako_lito
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2008
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 793
    Points : 827
    Points
    827
    Par défaut
    A la place du
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msgbox myFinalString, vbokonly
    , tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A2").Value = myFinalString
    Par contre, attention, car tu pioche ton initialisation de variable sur la cellule A2, donc je te déconseille de mettre ton résultat en A2, mets le dans une cellule qui n'est pas utilisée.
    Car si tu relance ta macro une seconde fois, il va initialiser la variable myFinalString avec tes 1100 mots et va recommencer le procédé, donc tu vas te retrouver avec 2200 mots et ainsi de suite.

  5. #5
    Candidat au Club
    Femme Profil pro
    Responsable marketing opérationnel
    Inscrit en
    Octobre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable marketing opérationnel
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Cela fonctionne!

    Un grand merci pour cette réponse efficace et rapide

  6. #6
    Membre éclairé Avatar de Nako_lito
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2008
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 793
    Points : 827
    Points
    827
    Par défaut
    Par contre, par soucis de périnité du code, tu devrais utiliser sheets(nomDeLaFeuilleOuSontLesDonnees).Range("A1") et pas juste Range("A1"), la différence se fera le jour ou tu auras plusieur feuille dans le classeur, il se peut qu'il se gourre de feuille et prenne pas les bonnes données. Ca t'évitera de chercher d'ou proviens l'erreur

  7. #7
    Candidat au Club
    Femme Profil pro
    Responsable marketing opérationnel
    Inscrit en
    Octobre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable marketing opérationnel
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Merci du conseil, je vais modifier cela

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

Discussions similaires

  1. String avec retour à la ligne tous les '100' caractères
    Par Portugues13 dans le forum Débuter avec Java
    Réponses: 16
    Dernier message: 05/06/2012, 17h16
  2. Réponses: 22
    Dernier message: 13/11/2011, 19h05
  3. [Tableaux] Couper un texte tous les xx mots
    Par sonno dans le forum Langage
    Réponses: 8
    Dernier message: 15/07/2007, 22h46
  4. Réponses: 4
    Dernier message: 01/03/2006, 13h58
  5. suppression de tous les mots de moins de 3 caracteres
    Par HurtMarley dans le forum Langage
    Réponses: 3
    Dernier message: 14/02/2006, 01h20

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