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
- Valeur ascii - 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