Répéter macro si une cellule contient un texte particulier

  • Initiateur de la discussion Initiateur de la discussion mgd
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

mgd

XLDnaute Nouveau
Bonsoir, ou bonjour vu l'heure...

Totalement novice dans l'utilisation du VBA, j'utilise l'enregistreur de macros (bien que je sache que le code est bof bof... mais on fait avec les moyens du bord 🙂
Fan de conditions complexes dans les formules (avec lesquelles je n'ai aucun problème), je désespère de les faire passer dans les macros...

Afin d'être au plus claire, je joins un fichier...

La macro que j'utilise correspond à la commande "convertir / délimité / espace" : d'une cellule contenant 10 chiffres séparés par des espaces, la macro permet d'écrire 1 élément par cellule.
Le code utilisé est le suivant (créé avec l'enregistreur) / lancé manuellement depuis chaque cellule C à convertir

Selection.TextToColumns Destination:=ActiveCell, DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=True, Other:=False, OtherChar _
:="(", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, _
1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1)), _
TrailingMinusNumbers:=True


Jusque là ça va (enfin ça marche), mais mon souci consiste à répéter l'utilisation de cette macro chaque fois que la cellule A de la même ligne contient le texte "A comptabiliser".
A noter évidement que le nombre de lignes du fichier peut être de 8 comme de 1500...

J'ai bien cherché des infos sur les boucles mais n'ai pas trouvé d'équivalent que je puisse comprendre...

Vous remerciant par avance du temps pris pour me lire et éventuellement m'orienter,
Cdt,
 

Pièces jointes

Dernière édition:
Re : Répéter macro si une cellule contient un texte particulier

Bonjour,

Pour une simple boucle
Code:
Sub Boucle()
Dim i As Integer
For i = 1 To 8
    If Cells(i, 1).Value = "A comptabiliser" Then
        Application.Run ("MeConvertir")
    End If
Next i
End Sub

Je te conseille de vérifier si ta macro MeConvertir fonctionne correctement ...

A +
 
Re : Répéter macro si une cellule contient un texte particulier

Bonjour et merci de ta réponse, je ne suis pas parvenue à faire fonctionner ta boucle si simple soit elle.

La macro MonConvertir fonctionne si manuellement tu sélectionnes bien la cellule à convertir (une des cellules C).
J'imagine que pour l'intégrer dans une boucle ça ne doit pas être suffisant.

D'ailleurs cette boucle doit elle être positionnée dans Module / This Workbook / La feuille concernée??
Mes questions sont certainement très idiotes mais j'avoue c'est le grand brouillard...
 
Re : Répéter macro si une cellule contient un texte particulier

Compte tenu de ta macro qui sélectionne la cellule active ...
Il faut simplement l'indiquer ...

Code:
Sub Boucle()
Dim i As Integer
For i = 1 To 8
    If Cells(i, 1).Value = "A comptabiliser" Then
        Cells(i,1).Offset(0,2).Select
        Application.Run ("MeConvertir")
    End If
Next i
End Sub

A +
 
Re : Répéter macro si une cellule contient un texte particulier

Bonjour



Pourquoi pas tout simplement faire ainsi ?

Code:
Option Explicit

Sub Macro1()
' Macro1 Macro issue de l'enregistreur de macro puis expurgé
' Macro enregistrée le 08/03/2009 par VBACrumble
Range("C3:C" & [C65536].End(xlUp).Row).TextToColumns Range("C3"), xlDelimited, , , , , , True
End Sub
 
Re : Répéter macro si une cellule contient un texte particulier

Salut mgd, James, le Forum

Pas sur de comprendre ce que tu veut faire mais essaye ces ligne de codes dans le module de la feuille

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("C:C")) Is Nothing Then
    On Error Resume Next
    If Target.Offset(0, -2) = "A comptabiliser" Then MonConvertir
End If
End Sub
EDITION: Salut vbacrumble 🙂
Bonne Journée
 
Re : Répéter macro si une cellule contient un texte particulier

Re


Pourquoi ..... ?
J'appelle ça une question non ?

La question étant plus précisément :

pourquoi passer par une boucle ?


Dans l'exemple: les lignes ne contenant pas A comptabiliser sont vides
 
Re : Répéter macro si une cellule contient un texte particulier

Tu parles volontiers de mes lunettes défaillantes ...
( c'est vrai qu'elles le sont ...😉 )
Mais est-ce que les tiennes t'ont permis de lire le titre du fil ??? 😉

A +
 
Re : Répéter macro si une cellule contient un texte particulier

Re


J'ai lu le titre (et j'ai deux paires de lunettes)

Mais je suppose au vue du fichier exemple
Que quand A est vide C le sera aussi
Que quand A = A comptabiliser --> C contiendra les chiffres+espace

Dans ce cas, le code précédemment proposé suffit non ,

(et je ne parle pas de la simplification du code.

PS: j'espère ne pas te heurter quand j'évoque tes lunettes.
 
Re : Répéter macro si une cellule contient un texte particulier

Tu peux aussi relire son premier message ... 🙂🙂🙂

Manifestement, il maitrise absolument tout ... 😉 sauf la notion de boucle ...

Cà fait trop longtemps que je porte des lunettes pour être vexé par si peu ...
😉😉😉

A +
Bon App
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
485
Réponses
3
Affichages
522
Retour