Microsoft 365 Extraire d’une chaîne, un texte qui se trouve entre guillemets.

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

Chasse

XLDnaute Occasionnel
Bonsoir le forum

j'aimerais extraire le mot "SVK" qui se trouve entre les guillemets et coller dans la colonne suivante
Petra Vlhova (SVK) = chaine
Ensuite supprimer les guillemets avec le mot. ne garder que "Petra Vlhova"

avec les formules j' y arrive

=STXT(D2;TROUVE("(";D2)+1;TROUVE(")";D2)-TROUVE("(";D2)-1)
=GAUCHE(D2; CHERCHE("("; D2) -1)

Mais avec ce code je bloque.




VB:
Sub www()

col = Cells(2, Cells.Columns.Count).End(xlToLeft).Column
If Range("e2") = "" Then: une: Exit Sub

 Set ski = Cells(2, col).Offset(0, 2)
ski.Select

 For c = 2 To 30 '?????
         If Cells(c, col) = "" Then: Exit For
 Essa = Split(Cells(c, col), "(")
   avan = Essa(1)
 
Cells(c, col + 1) = avan
Next
End Sub

Merci de m'aider
 

Pièces jointes

Bonsoir @Chasse,
Essayez peut-être :
Code:
Sub www()
Dim col&, i&, t
   If Range("e2") = "" Then une: Exit Sub
   col = Cells(2, Cells.Columns.Count).End(xlToLeft).Column
   For i = 2 To Cells(Rows.Count, col).End(xlUp).Row
      t = Split(Cells(i, col), "(")
      If UBound(t) > 0 Then
         Cells(i, col + 1) = Replace(t(1), ")", "")
         Cells(i, col) = Trim(t(0))
      End If
   Next
End Sub
 
peux tu m'expliquer ces 3 variantes Dim col&, i&, t
J'ai pour habitude de toujours déclarer le type des variables utilisées.
  • col est un numéro de colonne que je déclare comme entier (relatif en fait) de type Long
  • i est un numéro de ligne que je déclare comme entier (relatif en fait) de type Long
  • t est déclaré comme type Variant
Je devrais écrire : Dim col as long, i as long, t as Variant

En VBA, le suffixe pour Long est le caractère &. En VBA, une variable déclarée sans type est implicitement de type Variant. l'écriture se simplifie en : Dim col&, i&, t

Un petit résumé:
1615846769937.png
 
Dernière édition:
J'ai pour habitude de toujours déclarer le type des variables utilisées.
  • col est un numéro de colonne que je déclare comme entier (relatif en fait) de type Long
  • i est un numéro de ligne que je déclare comme entier (relatif en fait) de type Long
  • t est déclaré comme type Variant
Je devrais écrire : Dim col as long, i as long, t as Variant

En VBA, le suffixe pour Long est le caractère &. En VBA, une variable déclarée sans type est implicitement de type Variant. l'écriture se simplifie en : Dim col&, i&, t
Merci pour ses explications
je vais essayer d'en faire bon usage
 
Bonsoir @Chasse, mapomme, le forum

Voici ma proposition :

VB:
Sub www()
Dim Derlig&, col&, c&
Dim InitPays, InitNom

Derlig = Worksheets("Slalom").Range("K" & Rows.Count).End(xlUp).Row

col = Cells(2, Cells.Columns.Count).End(xlToLeft).Column 'cpte les colonnes
If Range("e2") = "" Then: une: Exit Sub

Set ski = Cells(2, col).Offset(0, 2)
ski.Select

For c = 2 To Derlig
    InitNom = Cells(c, col)
    InitPays = Cells(c, col)
    InitNom = Left(InitNom, Len(InitNom) - 6)
    Cells(c, col + 1).Value = InitNom
    InitPays = Right(InitPays, 4)
    InitPays = Left(InitPays, Len(InitPays) - 1)
    Cells(c, col + 2).Value = InitPays
Next

End Sub

@Phil69970
 
Dernière édition:
- 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
236
Réponses
16
Affichages
1 K
Réponses
35
Affichages
2 K
Retour