travail sur les chaines caractères en VBA

  • Initiateur de la discussion Initiateur de la discussion jethro
  • 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 !

jethro

XLDnaute Nouveau
Bonjour à tous,

J'ai un fichier de 7000 lignes avec uniquement la colonne A renseignée.

Je voudrais renseigner la colonne B en fonction de la présence (ou non) d'une chaine de caractères dans la colonne A.

selon les cas :
- cas 1 :s'il y a la chaine "plan" dans A2 alors renseigner la cellule B2 avec "plan"
- cas 2 : s'il y a la chaine "ville" dans A2 alors renseigner la cellule B2 avec "ville"
- cas 3 : s'il y a la chaine "parc" dans A2 alors renseigner la cellule B2 avec "parc"
- cas ....(j'en ai plus de 10 donc impossible de le faire dans une fonction avec des si imbriqués)
- autres cas

et parcourir toutes les lignes du fichier.

Avant je le faisais avec des filtres et "a la mano", mais ça devient de plus en plus lourd et donc je voudrais le faire en VBA.

J'ai du mal à démarrer la boucle, entre les "cell", les "range". 😕
Si quelqu'un pouvait juste me mettre sur la voie.

Je vous remercie d'avance pour votre aide.

Jethro
 
Re : travail sur les chaines caractères en VBA

bonjour jethro

une piste

Code:
Sub test()
For n = 1 To Range("A65536").End(xlUp).Row
  If InStr(Range("A" & n), "plan") <> 0 Then
    Range("B" & n) = "plan"
  End If
  If InStr(Range("A" & n), "ville") <> 0 Then
    Range("B" & n) = "ville"
  End If
  '.........
Next n
End Sub
 
Re : travail sur les chaines caractères en VBA

Bonjour Jethrro, PierreJean

c'est fait alors je donne tout de même :

Code:
Option Explicit
Option Compare Text
Sub test()
Dim c As Range
For Each c In Range("A1:A" & Range("A65536").End(xlUp).Row)
    If c.Value Like "*plan*" Then
        c.Offset(0, 1).Value = "plan"
        ElseIf c.Value Like "*ville*" Then c.Offset(0, 1).Value = "ville"
        ElseIf c.Value Like "*parc*" Then c.Offset(0, 1).Value = "parc"
    End If
Next c
End Sub

bonne soirée
@+
 
- 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
4
Affichages
177
  • Question Question
Réponses
8
Affichages
233
Réponses
4
Affichages
262
Retour