Recherche de champs libres dans un table
Barthe
-
Barthe -
Barthe -
Bonjour à tous,
Je suis en train de coder une macro VBA qui me permet d'actualiser une base de données.
Pour ce faire, je dispose d'une feuille excel "Feuil1". Je crée un table monodimensionnel (appelé table, attention il ne s'agit pas d'un tableau excel qui apparait à l'écran mais bien d'un table contenant tout plein de variables) dans lequel je copie l'ensemble des données de la Feuil1 afin de diminuer par la suite le temps de calcul.
Mon but ici est de déterminer les champs vides de caractères de mon table.
Je voudrais rédiger un code du type :
Ce qui m'intéresse, c'est comment écrire en VBA la condition "If table(i,0) est vide". Car je n'arrive pas actuellement à utiliser les fonctions LIKE "*" ou IsEmpty avec un champ d'un tableau (apparemment, cela ne marche qu'avec des chaines de caractères ou des range).
Merci à ceux qui pourront m'aider à résoudre ce problème. J'ai ici simplifié la situation d'usage mais dans mon code, je vais appliquer tout cela à de nombreux tableaux dont le nombre de lignes est inconnu à l'origine et varie à chaque fois !
Je suis en train de coder une macro VBA qui me permet d'actualiser une base de données.
Pour ce faire, je dispose d'une feuille excel "Feuil1". Je crée un table monodimensionnel (appelé table, attention il ne s'agit pas d'un tableau excel qui apparait à l'écran mais bien d'un table contenant tout plein de variables) dans lequel je copie l'ensemble des données de la Feuil1 afin de diminuer par la suite le temps de calcul.
Mon but ici est de déterminer les champs vides de caractères de mon table.
Je voudrais rédiger un code du type :
Sub test()
For i = 0 to derniereLigneDuTable
'If table(i,0) est vide then
'procedure...
Else
'procedure...
End If
Next i
End Sub
Ce qui m'intéresse, c'est comment écrire en VBA la condition "If table(i,0) est vide". Car je n'arrive pas actuellement à utiliser les fonctions LIKE "*" ou IsEmpty avec un champ d'un tableau (apparemment, cela ne marche qu'avec des chaines de caractères ou des range).
Merci à ceux qui pourront m'aider à résoudre ce problème. J'ai ici simplifié la situation d'usage mais dans mon code, je vais appliquer tout cela à de nombreux tableaux dont le nombre de lignes est inconnu à l'origine et varie à chaque fois !
A voir également:
- Recherche de champs libres dans un table
- Table ascii - Guide
- Table des matières word - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Images libres de droit - Guide
- Recherche photo - Guide
5 réponses
Voila le code en question (explication en dessous du code) :
number_of_line : nombre de line de table (calculé auparavant)
number_of_column : nombre de colonne de table (calculé auparavant)
table a été créé dynamiquement en début de module
'procedure which copies the sheet in a tab, called table, so as to reduce the time of calcul
Sub creationtable()
Dim j As Integer
Dim i As Integer
ReDim table(number_of_line - 2, number_of_column - 1)
For j = 0 To number_of_column - 1
For i = 0 To number_of_line - 2
table(i, j) = cells(i + 2, j + 1)
Next i
Next j
End Sub
number_of_line : nombre de line de table (calculé auparavant)
number_of_column : nombre de colonne de table (calculé auparavant)
table a été créé dynamiquement en début de module
Si je peux me permettre de continuer sur ma lancée :)
Je souhaiterais maintenant trier un tableau. Attention, il ne s'agit pas d'un tableau excel présent visuellement à l'écran mais d'un table (public table() ).
J'ai donc un table bidimensionnel. Je souhaiterais trier plusieurs colonnes spécifiques tel que suivant (en priorité le 1er point, puis le 2nd puis le 3ème) :
-d'abord la seconde colonne par ordre alphabétique (les aaa en haut, les zzz en bas)
-ensuite la 56ème colonne (ce n'est pas une blague ^^) qui n'est composé que de 0, de 1 et de 2 (les 0 en haut, les 1 aux milieux, les 2 en bas)
-enfin la cinquième colonne de nouveau par ordre alphabétique (les aaa en haut, les zzz en bas)
Je remercie infiniment les personnes qui m'aideront à faire ce tri. Ce sera la fin d'une longue programmation qui m'aura permis de découvrir le code VBA, avec plaisir je dois le dire :)
Je souhaiterais maintenant trier un tableau. Attention, il ne s'agit pas d'un tableau excel présent visuellement à l'écran mais d'un table (public table() ).
J'ai donc un table bidimensionnel. Je souhaiterais trier plusieurs colonnes spécifiques tel que suivant (en priorité le 1er point, puis le 2nd puis le 3ème) :
-d'abord la seconde colonne par ordre alphabétique (les aaa en haut, les zzz en bas)
-ensuite la 56ème colonne (ce n'est pas une blague ^^) qui n'est composé que de 0, de 1 et de 2 (les 0 en haut, les 1 aux milieux, les 2 en bas)
-enfin la cinquième colonne de nouveau par ordre alphabétique (les aaa en haut, les zzz en bas)
Je remercie infiniment les personnes qui m'aideront à faire ce tri. Ce sera la fin d'une longue programmation qui m'aura permis de découvrir le code VBA, avec plaisir je dois le dire :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question