travail sur les chaines caractères en VBA

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". :confused:
Si quelqu'un pouvait juste me mettre sur la voie.

Je vous remercie d'avance pour votre aide.

Jethro
 

pierrejean

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

Pierrot93

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

Discussions similaires

Statistiques des forums

Discussions
312 677
Messages
2 090 824
Membres
104 677
dernier inscrit
soufiane12