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 :

Cherche macro pour texte


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    fonctionnaire
    Inscrit en
    Juin 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : fonctionnaire
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2013
    Messages : 15
    Points : 13
    Points
    13
    Par défaut Cherche macro pour texte
    Bonjour à tous,

    Voila je n'ai jamais fais de macro, mais j'ai besoin d'en créé une:
    J'ai un tableaux Excel de +/- 10.000 lignes et +/- 50 colonnes.
    Dans la colonne b il y a +/- 60 phrases n'excédant pas plus de 10 mots chacune.
    J'aimerais que si il y a tel phrase en colonne B , alors en colonne D une autre phrase devra apparaître.
    les 60 phrases auront chacune leur réponse respective.

    merci d'avance

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub toto()
    With Sheets("Feuil1")
    For i = 2 to .range("B2").end(xldown).row
    Select case .cells(i,2)
    Case "Tellephrase"
    .cells(i,4)="Telle Reponse"
    Case "Telleautre"
    .cells(i,4)="Telle Reponse2"
    ....
    End Select
    Next i
    End With
    End Sub
    Amuse toi à recopier tes phrases.... Si la casse joue tu peux faire des Ucase et si les espaces comptent des Trim

  3. #3
    Membre à l'essai
    Homme Profil pro
    fonctionnaire
    Inscrit en
    Juin 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : fonctionnaire
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2013
    Messages : 15
    Points : 13
    Points
    13
    Par défaut Merci
    Merci pour votre réponse,

    Mais pour moi c'est un peu du chinois lol.

    Mon fichier Excel se nomme "tableau pour publipostage.xlsm"
    La feuille se nomme "Fichier Publipostage"
    La colonne ou se trouve les phrases source est "Q"
    La colonne ou les nouvelles phrases devront être est "CT"

    Merci

  4. #4
    Membre actif Avatar de pastis.vi
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Novembre 2008
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2008
    Messages : 251
    Points : 209
    Points
    209
    Par défaut
    Voilà le code adapté avec quelques explications qui t'aideront... retiens les c'est utile
    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
    Sub toto()
     
    With Workbook("tableau pour publipostage.xlsm").Sheets("Fichier Publipostage") 'le with sert à ne pas répeter les workbook, sheets...
        For i = 2 To .Range("B2").End(xlDown).Row                                  'chaque . que tu rencontres devant un Range, Sheets ou Cells indique que l'on place le contenu du "with" devant
            Select Case .Cells(i, 17)                                              'i correspond à la ligne et le 17 correspond au numéro de colonne: ici Q
                Case "Tellephrase"                                                 'tu dois lister toutes les phrases que tu trouveras dans ta colonne Q: à chaque phrase il faut un "Case..."
                .Cells(i, 98) = "Telle Reponse"                                    '"Cells" permet de situer une cellule par sa ligne et sa colonne: Cells(ligne, colonne)
                Case "Telleautre"
                .Cells(i, 98) = "Telle Reponse2"                                   'le 98 correspond à la colonne CT, la colonne destination de tes réponses
                '....
            End Select
        Next i                                                                     '"Next i" fait une itération de la boucle For en incrémentant i
    End With
     
    End Sub

  5. #5
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    Merci pastis

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour, test ça
    Fichiers attachés Fichiers attachés

  7. #7
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Points : 5 901
    Points
    5 901
    Par défaut
    Bonjour,

    Est-ce nécessaire de passer par une macro ?
    Si tu avais toutes tes phrases dans 2 colonnes d'une autre feuille, tu pourrais utiliser une RechercheV simplement...

  8. #8
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    Citation Envoyé par parmi Voir le message
    Bonjour,

    Est-ce nécessaire de passer par une macro ?
    Si tu avais toutes tes phrases dans 2 colonnes d'une autre feuille, tu pourrais utiliser une RechercheV simplement...
    10.000 lignes... 10 000 recherchesV ? 100 megas le fichier!

  9. #9
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Points : 5 901
    Points
    5 901
    Par défaut
    La formule de RechercheV peut être inscrite avec une seule ligne de code (ou manuellement), puis copiée en valeur si nécessaire.

  10. #10
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    D'où l'intérêt de la Macro CQFD par contre la fonction de rdurupt est tip top

  11. #11
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Points : 5 901
    Points
    5 901
    Par défaut
    Personnellement, je n'aime pas les fonctions personnalisées parce qu'elles ne fonctionnent pas toujours bien (pas de rafraichissement, à l'occasion) même avec Volatil.

    Mais bon, ça demeure un choix personnel...

  12. #12
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonsoir,

    Une autre idée, en passant par des tableaux, bien que la proposition de rdurupt soit séduisante. J'ai tenu compte de ce qu'a précisé zeus1774 :
    La feuille se nomme "Fichier Publipostage"
    La colonne ou se trouve les phrases source est "Q"
    La colonne ou les nouvelles phrases devront être est "CT"
    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
    Option Explicit
    Option Base 1
    Sub texte_cherché()
    Dim TbTexte, x As Long, y As Integer, mot As String, phrase, placer()
    mot = InputBox("Quel mot cherché ?", "Mot D'apres", "les")
    With Sheets("Fichier Publipostage")
      x = .Range("Q" & .Rows.Count).End(xlUp).Row
      TbTexte = .Range("Q2:Q" & x)
      ReDim placer(1 To x)
      For x = 1 To UBound(TbTexte)
        phrase = Split(TbTexte(x, 1), " ")
        For y = 0 To UBound(phrase)
          If phrase(y) = mot Then
            placer(x) = placer(x) & " " & phrase(y + 1)
          End If
        Next y
      Next x
      .Range("CT2:CT" & UBound(placer)) = WorksheetFunction.Transpose(placer)
    End With
     
     End Sub
    Bien sur, ce n'est qu'une idée étant donné que je ne connais pas quelles sont les phrases recherchées, je mets donc en résultat le mot suivant le mot recherché, c'est donc à adapter

Discussions similaires

  1. cherche macro pour supprimer () dans du texte
    Par potiocom dans le forum VBA Word
    Réponses: 5
    Dernier message: 14/10/2011, 14h25
  2. [PPT-2003] Cherche macro pour chercher/remplacer texte dans tableau
    Par cactus666 dans le forum VBA PowerPoint
    Réponses: 9
    Dernier message: 27/05/2009, 13h31
  3. Réponses: 3
    Dernier message: 03/12/2007, 20h34
  4. Réponses: 4
    Dernier message: 13/09/2007, 09h30
  5. [VBA-E] Macro pour convertir un fichier texte en excel
    Par Nicolas67 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/05/2006, 14h47

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