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

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

  • RépéterMacroExcel.xls
    26 KB · Affichages: 109
Dernière édition:

James007

XLDnaute Barbatruc
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 +
 

mgd

XLDnaute Nouveau
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...
 

James007

XLDnaute Barbatruc
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 +
 

vbacrumble

XLDnaute Accro
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
 

Dull

XLDnaute Barbatruc
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
 

vbacrumble

XLDnaute Accro
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
 

James007

XLDnaute Barbatruc
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 +
 

vbacrumble

XLDnaute Accro
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.
 

James007

XLDnaute Barbatruc
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
 

Discussions similaires

Statistiques des forums

Discussions
312 318
Messages
2 087 208
Membres
103 493
dernier inscrit
Vidal Salvador