Fonction Ubound, valeur incorrecte
Résolu
Yderian
Messages postés
7
Statut
Membre
-
Yderian Messages postés 7 Statut Membre -
Yderian Messages postés 7 Statut Membre -
Bonjour,
J'ai un soucis avec la fonction Ubound. Quand je l'utilise, j'obtiens une erreur disant que ma selection est invalide, or je ne comprends pas pourquoi. Pouvez-vous m'aider ? Voici la ligne défectueuse et ensuite tout le programme
Bien cordialement
Yderian
J'ai un soucis avec la fonction Ubound. Quand je l'utilise, j'obtiens une erreur disant que ma selection est invalide, or je ne comprends pas pourquoi. Pouvez-vous m'aider ? Voici la ligne défectueuse et ensuite tout le programme
Ws_Feuille_destination.Cells(n, 3) = Tableau_de_mot(UBound(Tableau_de_mot))
Sub Ecrire_les_info_premiere_colonne()
'On cible la première feuille contenant les info à manipuler
' Dim + nom_varialbe + As + type_varialbe (integer, long, String, ...)
Dim Ws_Feuille_information As Worksheet
Set Ws_Feuille_information = ThisWorkbook.Worksheets("Feuil1")
'On cible la deuxième feuille contenant les résultat des traitements
Dim Ws_Feuille_destination As Worksheet
Set Ws_Feuille_destination = ThisWorkbook.Worksheets("Feuil2")
'Récupération de la cellule voulu
Dim libelle_cellule As String
Dim Tableau_de_mot() As String
Dim longueur_tab_mot As Integer
Dim concatenation_adresse As String
n = 1 'mise en place du compteur permettant d'avoir les bon numéro de ligne pour la prise d'information dans les cellules cible
W = 1 'compteur permettant d'avoir les numéros associés aux publiants d'une même publication
'Boucle for pour scanner toute les cellules
derniere_ligne = Sheets("Feuil1").Range("A1").End(xlDown).Row
'boucle for permettant de scanner ligne après ligne le dernier mot (le pays) de chaque cellule
For j = 1 To 2
derniere_colonne = Sheets("Feuil1").Cells(j, 1).End(xlToRight).Column
'Boucle permettant l'écriture
For l = 1 To derniere_colonne
libelle_cellule = Ws_Feuille_information.Cells(j, l)
'On va spliter la ligne par rapport aux virgules
'Fonction permettant de séparer les phrases en cellules en fonction des virgules
Tableau_de_mot = Split(libelle_cellule, ",")
'on affiche toutes les occurences du tableau
' UBound renvoi l'indice max du tableau
concatenation_adresse = ""
'boucle if pour séparer le lien Internet
If l = 1 Then
For longueur_tab_mot = 1 To (UBound(Tableau_de_mot) - 1)
concatenation_adresse = concatenation_adresse + Tableau_de_mot(longueur_tab_mot)
'Ws_Feuille_destination.Range("A" + CStr(longueur_tab_mot + 1)).Value = Tableau_de_mot(longueur_tab_mot)
Next longueur_tab_mot
Else
For longueur_tab_mot = 0 To (UBound(Tableau_de_mot) - 1)
'MsgBox (Tableau_de_mot(longueur_tab_mot))
concatenation_adresse = concatenation_adresse + Tableau_de_mot(longueur_tab_mot)
'Ws_Feuille_destination.Range("A" + CStr(longueur_tab_mot + 1)).Value = Tableau_de_mot(longueur_tab_mot)
Next longueur_tab_mot
End If
'Ecriture des résultats
Ws_Feuille_destination.Cells(n, 1) = W
'Ici on ecris le résultat de cette transformation
Ws_Feuille_destination.Cells(n, 2) = concatenation_adresse
'Ws_Feuille_destination.Cells(n, 2) = concatenation_adresse
Ws_Feuille_destination.Cells(n, 3) = Tableau_de_mot(UBound(Tableau_de_mot))
n = n + 1
Next
W = W + 1
Next
End Sub
Bien cordialement
Yderian
A voir également:
- Fonction Ubound, valeur incorrecte
- Fonction si et - Guide
- Fonction miroir - Guide
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
- Formule excel si contient texte alors valeur ✓ - Forum Excel
- Fonction moyenne excel - Guide
2 réponses
bonjour
lorsque tu utilises split l'indice de départ est 0 et non 1
lorsque tu utilises split l'indice de départ est 0 et non 1
Yderian
Messages postés
7
Statut
Membre
Oui, j'utilise d'ailleurs ce fait à certain moment (d'où le fait que soit je parte de 1 ou de 0). Mais je comprends pas, la fonction Ubound devrais normalement me renvoyer à la fin de mon split non ? La j'ai l'impression que ce n'est pas le cas quand ça marche pas, que mon tableau ne fait qu'une entrée (et donc valeur 0). Or ce n'est pas possible, j'ai regardé la ou il y a l'erreur, il y a bien un split de fait allant jusqu'à 5