Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Utilisation de select case

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 !

Ayari69700

XLDnaute Nouveau
Bonjour à tous,

J'essaye d'avancer sur un tableau vba et je bataille avec la fonction select cas.

Je voudrais avec cette fonction que le programme me renvoie en fonction des valeur de "vStr" :
Une des valeurs entre 0 et 2 de "s_trings" dans la colonne 4,
Une des valeurs entre 3 et 5 de "s_trings" dans la colonne 3,
Une des valeurs entre 6 et 8 de "s_trings" dans la colonne 6.

Je ne sais pas si c'est clairement dit et si évidant.

Merci beaucoup par avance pour votre aide
 

Pièces jointes

Re

Je ne comprends trop ta logique.
Mais en laissant le Case Is >1, (comme je l'avais écrit dans le 1er fil), ça fonctionne correctement, non ?
(au moins pour Cells(c.Row, 4), car c'est ensuite que ta logique m'échappe ?)
VB:
Private Sub CommandButton4_Click()
'déclare les variables
Dim c As Range, s_trings, I&, vStr
s_trings = Array("couloirs", "bureaux", "locaux", "Bâtiment A", "Bâtiment C", "Bâtiment B", "câble FE0", "câble FE05C", "câble FE180") 'envoyer une variable Variant contenue dans un tableau.
vStr = Array("coul", "bur", "LT", "BA", "BC", "BB", "FE0", "FE05", "FE180")
Application.ScreenUpdating = False
For Each c In Range(Cells(4, 1), Cells(Rows.Count, 1).End(3))
If Len(c) Then    ' renvoie le nombre de caractère peut etre une securité
    For I = 0 To 8   'boucle for pour tester les valeur de 0, 1, 2
        Select Case InStr(c, vStr(I))
        Case Is > 1
        Cells(c.Row, 4) = s_trings(I)
        Cells(c.Row, 3) = s_trings(I)
        Cells(c.Row, 6) = s_trings(I)
        Case Else
        End Select
    Next
End If
Next
End Sub
 
Bonjour Ayari69700, JM,

Les formules en colonnes E et F avec SIERREUR me sortent par les yeux, écrivez plutôt en E4 et F4 :
Code:
=REPT("sonorisation";ESTNUM(CHERCHE("sono";A4)))&REPT("force";ESTNUM(CHERCHE("for";A4)))&REPT("détection incendie";ESTNUM(CHERCHE("DI";A4)))

=REPT("câble FE180";ESTNUM(CHERCHE("FE180";A4)))&REPT("câble FE0";ESTNUM(CHERCHE("FE0";A4)))&REPT("câble FE05C";ESTNUM(CHERCHE("FE 05";A4)))
A+
 
Pour ce qui est du VBA, si j'ai bien compris ce qui est souhaité :
VB:
Private Sub CommandButton4_Click()
Dim c As Range, s_trings, vStr, I&
s_trings = Array("couloirs", "bureaux", "locaux", "Bâtiment A", "Bâtiment C", "Bâtiment B", "câble FE0", "câble FE05C", "câble FE180")
vStr = Array("coul", "bur", "LT", "BA", "BC", "BB", "FE0", "FE05", "FE180")
Application.ScreenUpdating = False
[C4:D30,F4:F30] = "" 'RAZ, plages à adapter
For Each c In [A4:A30] 'plage à adapter
    For I = 0 To 8   'boucle for pour tester les valeur de 0, 1, 2
        If InStr(c, vStr(I)) Then
            Select Case I
                Case 0 To 2: c(1, 4) = s_trings(I)
                Case 3 To 5: c(1, 3) = s_trings(I)
                Case 6 To 8: c(1, 6) = s_trings(I)
            End Select
        End If
    Next
Next
End Sub
 
- 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
18
Affichages
738
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
481
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…