Pour supprimer tous les =E9l=E9ments vides d'un tableau variant, j'utilise =
ce code, mais il d=E9clenche une erreur (Item.Delete) :
'----------------
j =3D 0
For Each Item In B$
If Len(Trim(Item)) =3D 0 Then
Item.Delete
Else
MsgBox "item " & j & " : " & Item
End If
j =3D j + 1
Next Item
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
OLEGNA
Le 21/05/2012 13:25, Apitos a écrit :
Bonjour à tous,
Pour supprimer tous les éléments vides d'un tableau variant, j'utilise ce code, mais il déclenche une erreur (Item.Delete) :
'---------------- j = 0 For Each Item In B$ If Len(Trim(Item)) = 0 Then Item.Delete Else MsgBox "item "& j& " : "& Item End If j = j + 1 Next Item
'----------------
Merci.
Bonjour à tous. Je n'ai pas compris! B$ est bien la collection des lignes de ton tableau ? Si B$ est ton tableau lui-même, tu ne peux pas détruire de cellules dans ton tableau! ???
-- OLEGNA
Le 21/05/2012 13:25, Apitos a écrit :
Bonjour à tous,
Pour supprimer tous les éléments vides d'un tableau variant, j'utilise ce code, mais il déclenche une erreur (Item.Delete) :
'----------------
j = 0
For Each Item In B$
If Len(Trim(Item)) = 0 Then
Item.Delete
Else
MsgBox "item "& j& " : "& Item
End If
j = j + 1
Next Item
'----------------
Merci.
Bonjour à tous.
Je n'ai pas compris!
B$ est bien la collection des lignes de ton tableau ?
Si B$ est ton tableau lui-même, tu ne peux pas détruire de cellules dans
ton tableau!
???
Pour supprimer tous les éléments vides d'un tableau variant, j'utilise ce code, mais il déclenche une erreur (Item.Delete) :
'---------------- j = 0 For Each Item In B$ If Len(Trim(Item)) = 0 Then Item.Delete Else MsgBox "item "& j& " : "& Item End If j = j + 1 Next Item
'----------------
Merci.
Bonjour à tous. Je n'ai pas compris! B$ est bien la collection des lignes de ton tableau ? Si B$ est ton tableau lui-même, tu ne peux pas détruire de cellules dans ton tableau! ???
-- OLEGNA
Apitos
Bonsoir OLEGNA,
Si B$ est ton tableau lui-même, tu ne peux pas détruire de cellules d ans ton tableau!
Alors j'ai essayé cette autre solution :
'--------------------------- '-- Récupération des éléments non vides du tableau B$ dans un nouve au tableau BB$
i = 0: j = 0 For Each Item In B$ If Len(Trim(Item)) > 0 Then ReDim Preserve BB$(i) BB$(i) = B$(j) i = i + 1 End If j = j + 1 Next Item '---------------------------
Et ça marche !
Bonsoir OLEGNA,
Si B$ est ton tableau lui-même, tu ne peux pas détruire de cellules d ans
ton tableau!
Alors j'ai essayé cette autre solution :
'---------------------------
'-- Récupération des éléments non vides du tableau B$ dans un nouve au tableau BB$
i = 0: j = 0
For Each Item In B$
If Len(Trim(Item)) > 0 Then
ReDim Preserve BB$(i)
BB$(i) = B$(j)
i = i + 1
End If
j = j + 1
Next Item
'---------------------------
Si B$ est ton tableau lui-même, tu ne peux pas détruire de cellules d ans ton tableau!
Alors j'ai essayé cette autre solution :
'--------------------------- '-- Récupération des éléments non vides du tableau B$ dans un nouve au tableau BB$
i = 0: j = 0 For Each Item In B$ If Len(Trim(Item)) > 0 Then ReDim Preserve BB$(i) BB$(i) = B$(j) i = i + 1 End If j = j + 1 Next Item '---------------------------
Et ça marche !
Jacquouille
Bonsoir Ton tableau (a1:c10) est baptisé zn; si(=SOMMEPROD(ESTVIDE(A1:C1)*1)=colonnes(zn);alors entire.rows.delete;passer à la ligne suivante)
Si tu déchiffres cela, tu auras la solution à ton problème. Il ne te reste plus qu'à mettre cela en grand breton. tu dois compter les colonnes de ton tableau. Ensuite, vérifier que la somme des tests (vrai) pour cel vide dans chaque ligne est = au Nb de col. dans ce cas, delete la ligne. Tu dois supprimer la ligne entière et non une cel. De plus, il te faudra commencer le test par la dernière ligne de ton tableau pour remonter ( n = lignes(zn) to 1 step -1 ) 1000 excuses, mais je n'ai rien d'autre sous la main ......
Jacquouille
" Le vin est au repas ce que le parfum est à la femme." "Apitos" a écrit dans le message de groupe de discussion :
Bonjour à tous,
Pour supprimer tous les éléments vides d'un tableau variant, j'utilise ce code, mais il déclenche une erreur (Item.Delete) :
'---------------- j = 0 For Each Item In B$ If Len(Trim(Item)) = 0 Then Item.Delete Else MsgBox "item " & j & " : " & Item End If j = j + 1 Next Item
'----------------
Merci.
Bonsoir
Ton tableau (a1:c10) est baptisé zn;
si(=SOMMEPROD(ESTVIDE(A1:C1)*1)=colonnes(zn);alors entire.rows.delete;passer
à la ligne suivante)
Si tu déchiffres cela, tu auras la solution à ton problème.
Il ne te reste plus qu'à mettre cela en grand breton.
tu dois compter les colonnes de ton tableau.
Ensuite, vérifier que la somme des tests (vrai) pour cel vide dans chaque
ligne est = au Nb de col. dans ce cas, delete la ligne.
Tu dois supprimer la ligne entière et non une cel. De plus, il te faudra
commencer le test par la dernière ligne de ton tableau pour remonter ( n =
lignes(zn) to 1 step -1 )
1000 excuses, mais je n'ai rien d'autre sous la main ......
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"Apitos" a écrit dans le message de groupe de discussion :
bd4fe299-47e8-4177-a965-5e1d77b03989@googlegroups.com...
Bonjour à tous,
Pour supprimer tous les éléments vides d'un tableau variant, j'utilise ce
code, mais il déclenche une erreur (Item.Delete) :
'----------------
j = 0
For Each Item In B$
If Len(Trim(Item)) = 0 Then
Item.Delete
Else
MsgBox "item " & j & " : " & Item
End If
j = j + 1
Next Item
Bonsoir Ton tableau (a1:c10) est baptisé zn; si(=SOMMEPROD(ESTVIDE(A1:C1)*1)=colonnes(zn);alors entire.rows.delete;passer à la ligne suivante)
Si tu déchiffres cela, tu auras la solution à ton problème. Il ne te reste plus qu'à mettre cela en grand breton. tu dois compter les colonnes de ton tableau. Ensuite, vérifier que la somme des tests (vrai) pour cel vide dans chaque ligne est = au Nb de col. dans ce cas, delete la ligne. Tu dois supprimer la ligne entière et non une cel. De plus, il te faudra commencer le test par la dernière ligne de ton tableau pour remonter ( n = lignes(zn) to 1 step -1 ) 1000 excuses, mais je n'ai rien d'autre sous la main ......
Jacquouille
" Le vin est au repas ce que le parfum est à la femme." "Apitos" a écrit dans le message de groupe de discussion :
Bonjour à tous,
Pour supprimer tous les éléments vides d'un tableau variant, j'utilise ce code, mais il déclenche une erreur (Item.Delete) :
'---------------- j = 0 For Each Item In B$ If Len(Trim(Item)) = 0 Then Item.Delete Else MsgBox "item " & j & " : " & Item End If j = j + 1 Next Item
'----------------
Merci.
Apitos
Bonsoir Jaquouille,
Mon tableau est dynamique de type variant et ce n'est pas une plage sur une feuille.
Bonsoir Jaquouille,
Mon tableau est dynamique de type variant et ce n'est pas une plage sur une feuille.
Bonjour, Oui, tu ne peux pas le supprimer. Qu'est-ce que tu cherches à faire ? Daniel
Bonjour à tous,
Pour supprimer tous les éléments vides d'un tableau variant, j'utilise ce code, mais il déclenche une erreur (Item.Delete) :
'---------------- j = 0 For Each Item In B$ If Len(Trim(Item)) = 0 Then Item.Delete Else MsgBox "item " & j & " : " & Item End If j = j + 1 Next Item
'----------------
Merci.
Jacquouille
Bonjour En employant des termes techniques, c'est précis, mais on risque de se gourrer (cfr plage et cel d'un autre msg). Un certain nombre de col et de lignes forment un tableau, une plage, une zone, une base de données ......... Appelons et baptisons ce machin Zn. Quand tu grossis ou maigris d'un KG, ton slip suit les méandres de ton corps, mais il reste quand même un slip. Ici, que tu rajoutes une colonne ou des lignes, cela restera une base de données, dont tu peux compter les lignes et les colonnes. Quand tu auras ces deux renseignements, tu pars de la dernière ligne de Zn et tu reviens vers la première (step -1).*** Au moyen de la formule proposée ou d'une autre, tu compares le Nb de col avec le nombre de cel vides sur une même ligne. Si les deux coïncident, c'est que la ligne est vide. Si vide, ----> delete. Next. **** Excel balaye une plage ligne par ligne, en commençant en haut. Si tu analyse le ligne 3, puis que tu la supprimes, c'est la quatrième qui vient prendre sa place, MAIS elle ne sera pas analysée puisque Excel vient de le faire. Donc, si elle est vide, elle ne sera pas supprimée. tandis que en commençant par le bas, si on supprime une ligne, c'est une ligne déjà analysée qui prend sa place. .....d'où le step -1. PS Si ton tableau n'est pas une plage sur une feuille, qu'est-ce donc? Une photo ?
Jacquouille
" Le vin est au repas ce que le parfum est à la femme." "Apitos" a écrit dans le message de groupe de discussion :
Bonsoir Jaquouille,
Mon tableau est dynamique de type variant et ce n'est pas une plage sur une feuille.
Bonjour
En employant des termes techniques, c'est précis, mais on risque de se
gourrer (cfr plage et cel d'un autre msg).
Un certain nombre de col et de lignes forment un tableau, une plage, une
zone, une base de données .........
Appelons et baptisons ce machin Zn. Quand tu grossis ou maigris d'un KG,
ton slip suit les méandres de ton corps, mais il reste quand même un slip.
Ici, que tu rajoutes une colonne ou des lignes, cela restera une base de
données, dont tu peux compter les lignes et les colonnes.
Quand tu auras ces deux renseignements, tu pars de la dernière ligne de Zn
et tu reviens vers la première (step -1).***
Au moyen de la formule proposée ou d'une autre, tu compares le Nb de col
avec le nombre de cel vides sur une même ligne. Si les deux coïncident,
c'est que la ligne est vide.
Si vide, ----> delete.
Next.
**** Excel balaye une plage ligne par ligne, en commençant en haut.
Si tu analyse le ligne 3, puis que tu la supprimes, c'est la quatrième qui
vient prendre sa place, MAIS elle ne sera pas analysée puisque Excel vient
de le faire. Donc, si elle est vide, elle ne sera pas supprimée.
tandis que en commençant par le bas, si on supprime une ligne, c'est une
ligne déjà analysée qui prend sa place. .....d'où le step -1.
PS Si ton tableau n'est pas une plage sur une feuille, qu'est-ce donc? Une
photo ?
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"Apitos" a écrit dans le message de groupe de discussion :
b9d3dd14-7dd6-4e66-9997-a2e603643d1f@googlegroups.com...
Bonsoir Jaquouille,
Mon tableau est dynamique de type variant et ce n'est pas une plage sur une
feuille.
Bonjour En employant des termes techniques, c'est précis, mais on risque de se gourrer (cfr plage et cel d'un autre msg). Un certain nombre de col et de lignes forment un tableau, une plage, une zone, une base de données ......... Appelons et baptisons ce machin Zn. Quand tu grossis ou maigris d'un KG, ton slip suit les méandres de ton corps, mais il reste quand même un slip. Ici, que tu rajoutes une colonne ou des lignes, cela restera une base de données, dont tu peux compter les lignes et les colonnes. Quand tu auras ces deux renseignements, tu pars de la dernière ligne de Zn et tu reviens vers la première (step -1).*** Au moyen de la formule proposée ou d'une autre, tu compares le Nb de col avec le nombre de cel vides sur une même ligne. Si les deux coïncident, c'est que la ligne est vide. Si vide, ----> delete. Next. **** Excel balaye une plage ligne par ligne, en commençant en haut. Si tu analyse le ligne 3, puis que tu la supprimes, c'est la quatrième qui vient prendre sa place, MAIS elle ne sera pas analysée puisque Excel vient de le faire. Donc, si elle est vide, elle ne sera pas supprimée. tandis que en commençant par le bas, si on supprime une ligne, c'est une ligne déjà analysée qui prend sa place. .....d'où le step -1. PS Si ton tableau n'est pas une plage sur une feuille, qu'est-ce donc? Une photo ?
Jacquouille
" Le vin est au repas ce que le parfum est à la femme." "Apitos" a écrit dans le message de groupe de discussion :
Bonsoir Jaquouille,
Mon tableau est dynamique de type variant et ce n'est pas une plage sur une feuille.
Apitos
Bonsoir Jaquouille,
Tu me dira quel type de tableau j'utilise dans ce code :
'--------------------------- '-- Récupération des éléments non vides '-- du tableau B$ dans un nouveau tableau BB$ Dim B$(), BB$()
i = 0: j = 0
For Each Item In B$ If Len(Trim(Item)) > 0 Then ReDim Preserve BB$(i) BB$(i) = B$(j) i = i + 1 End If j = j + 1 Next Item '---------------------------
Bonsoir Jaquouille,
Tu me dira quel type de tableau j'utilise dans ce code :
'---------------------------
'-- Récupération des éléments non vides
'-- du tableau B$ dans un nouveau tableau BB$
Dim B$(), BB$()
i = 0: j = 0
For Each Item In B$
If Len(Trim(Item)) > 0 Then
ReDim Preserve BB$(i)
BB$(i) = B$(j)
i = i + 1
End If
j = j + 1
Next Item
'---------------------------