Chaîne de caractère : extraction et copie

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

E

EpsilonOne

Guest
Bonjour,

je débute en VBA et j'ai fait la macro suivante :

Code:
Sub Maj_Statut()

Dim Cellule As Range
Dim CellRecep As Long
Dim Car As Long
Dim Statut As String
Dim y As Long


Sheets("DBrut").Activate
y = 2
'x = CStr(Range("A" & y))
For Each Cellule In Range("A2:A20")
    For Car = InStr(Range("A" & y), "F") To InStr(Range("A" & y), "é")
        If Mid(Cellule.Value, Car, 1) <> "" Then
            Statut = Statut & Mid(Cellule.Value, Car, 1)
        Else
            Sheets("Incidents").Range("A" & y).Offset(Cellrecept, 0).Value = Statut
            Statut = ""
            Cellrecept = Cellrecept + 1
        End If
    Next Car
    Sheets("Incidents").Range("A" & y).Offset(Cellrecept, 0).Value = Statut
    Statut = ""
    Cellrecept = Cellrecept + 1
Next Cellule
End Sub

Ça marche pas trop mal, sauf que la fonction InStr ne me renvoie pas la bonne valeur 😡 et je ne vois pas pourquoi elle renvoie une valeur erronée ?

Si l'un d'entre vous à une idée ?

Cordialement
 

Pièces jointes

Re : Chaîne de caractère : extraction et copie

Bonjour EpsilonOne et bienvenue

Peux tu préciser ce que tu cherches à faire ?
Tu souhaites récupérer le mot "Fermé". Si c'est le cas, quand ce mot n'existe pas que faut-il faire.

A+
 
Re : Chaîne de caractère : extraction et copie

Bonsoir, bonsoir bqtr
Comme le fichier n'a rien à avoir avec la macro, sans vraiment savoir où il faut mettre le résultat, avec le fichier fourni, compte tenu de ce que j'ai compris
Code:
Sub Maj_Statut()
With Sheets(1)
For Each Cel In .Range("A1:A19")
If Cel Like "*Fermé*" = True Then
Sheets(2).Range("A" & Cel.Row) = "Fermé"
End If
Next
End With
End Sub
A+
kjin
 
Re : Chaîne de caractère : extraction et copie

Bonjour,

merci pour vos réponses.

en effet, je cherche à récupérer "Fermé" ou "En attente" ou "En cours", et à les copier dans une autre feuille en respectant le numéro de la cellule. Si aucun des mots n'est trouvés, la macro devra afficher une cellule vide.

Cordialement
 
Re : Chaîne de caractère : extraction et copie

Bonjour,
As tu au moins testé le code fourni 🙄
Le code modifié pour récupérer en plus "Nouveau" et "En cours"
Code:
Sub Maj_Statut()
With Sheets("Dbrut")
For Each cel In .Range("A1:A19")
If cel Like "*Fermé*" = True Then Sheets("Incidents").Range("A" & cel.Row) = "Fermé"
If cel Like "*Nouveau*" = True Then Sheets("Incidents").Range("A" & cel.Row) = "Nouveau"
If cel Like "*En" & " " & "cours*" = True Then Sheets("Incidents").Range("A" & cel.Row) = "En cours"
Next
End With
End Sub
A+
kjin
 
Dernière édition:
Re : Chaîne de caractère : extraction et copie

Bonjour à tous

Une autre façon en utilisant Switch
(mais cette solution ne fonctionne que
si les valeurs son rigoureusement égales
à Fermé , Nouveau, En cours, En attente

Code:
Sub Maj_Statut_avecSwitch()
'noms des feuilles changées
'pour faire le test
With Sheets(1)
For Each cel In .Range("A1:A19")
Sheets(2).Range("A" & cel.Row) = _
Switch(cel = "Fermé", "Fermé", _
cel = "Nouveau", "Nouveau", _
cel = "En cours", "En cours", _
cel = "En attente", "En attente")
Next
End With
End Sub
 
Dernière édition:
Re : Chaîne de caractère : extraction et copie

Bonjour à tous

Une autre façon en utilisant Switch
(mais cette solution ne fonctionne que
si les valeurs son rigoureusement égales
à Fermé , Nouveau, En cours, En attente

Code:
Sub Maj_Statut_avecSwitch()
'noms des feuilles changées
'pour faire le test
Sub Maj_Statut()
With Sheets(1)
For Each cel In .Range("A1:A19")
Sheets(2).Range("A" & cel.Row) = _
Switch(cel = "Fermé", "Fermé", _
cel = "Nouveau", "Nouveau", _
cel = "En cours", "En cours", _
cel = "En attente", "En attente")
Next
End With
End Sub

merci 🙂 pour le code, je regarde ça...
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
916
Réponses
4
Affichages
737
Retour