Chaine de caracteres comme array

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

Albator V

XLDnaute Nouveau
bonjour à tous,

j'ai recuperé une macro qui permet de supprimer les doublons. il y a plusieurs parametres modifiables directement dans le code vba.
Pour faciliter la modification de ces parametres, j'ai cree un USF, mais j'ai un soucis avec une array.

La macro me permet de choisir les colonnes a controler. il y a donc le code ColumnsToMatch = Array("a", "b", "c", "d", "e")
Dans ma USF, j'ai cree une textbox et je veux que les colonnes soient saisies à la suite : abcde.
Comment utiliser cette chaine abcde pour l'array ?

J'ai pensé inscrire abcde dans une cellule, puis la mettre dans le bon format par macro "a", "b", "c", "d", "e" dans une autre cellule et ensuite utiliser cette cellule, mais ca ne fonctionne pas 😎

merci d'avance
 
Re : Chaine de caracteres comme array

bonjour,

pour répondre à la question sans chercher + loin, les instructions ci-dessous créeront une variable tableau "tablo" dont la taille sera la longueur de la chaine passée dans la variable "x".

Dim tablo As Variant
x = "abcde"
ReDim tablo(1 To Len(x))
For i = 1 To UBound(tablo): tablo(i) = Mid(x, i, 1): Next i
 
Re : Chaine de caracteres comme array

J'ai essayé d'adapter ton code mais je n'y arrive vraiment pas... voici un bout du code d'origine...

Code:
    Set CheckRows = Rows(ThisWorkbook.Sheets("Feuil1").Range("E4").Value)
    ColumnsToMatch = Array("a", "b", "c", "d", "e")

    lLBound = LBound(ColumnsToMatch)
    lUBound = UBound(ColumnsToMatch)

    Set CheckRange = Intersect(Range(ColumnsToMatch(lLBound) & _
        ":" & ColumnsToMatch(lLBound)), CheckRows)

    ReDim OffsetValue(lUBound - lLBound + 1)

    For Counter = lLBound To lUBound
        OffsetValue(Counter) = Range(ColumnsToMatch(Counter) & ":" & _
            ColumnsToMatch(Counter)).Column - CheckRange.Column
    Next Counter
 
Re : Chaine de caracteres comme array

j'ai fait un code pour construire une array à partir d'une chaine, cependant en voyant ton code, je ne vois pas trop ce que tu essayes de faire.

je crois que le code ci-dessous s'en approche.

x = TextBox1.Text
ReDim tablo(1 To Len(x))
For i = 1 To UBound(tablo)
tablo(i) = UCase(Mid(x, i, 1)) & ":" & UCase(Mid(x, i, 1))
Next i
ColumnsToMatch = tablo
 
- 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

  • Question Question
Microsoft 365 Complétude fichier
Réponses
8
Affichages
641
Réponses
5
Affichages
316
Réponses
3
Affichages
461
Réponses
20
Affichages
766
Réponses
10
Affichages
562
Retour