OVH Cloud OVH Cloud

suppression de lignes

13 réponses
Avatar
DENIS
Bonjour à tous,

J'ai un tableau A3:Q100;
Je souhaiterais qu'en partant de la cellule O3, si celle-ci est vide alors
suppression de toute la ligne. Selection.EntireRow.Delete
Et que cette opération se répète jusqu'en ligne 100.

Merci
Denis

3 réponses

1 2
Avatar
DENIS
je me suis mal exprimé.
colonne A : Nom du fournisseur
colonne J : nbre de colis
colonne K : Poids d'un colis
Colonne L : Largeur
Colonne M : Longueur
Colonne N : Hauteur
Colonne O : reférence sous laquelle est partie le ou les colis

Donc si pour le fournisseur A, il n'y a pas qu'un colis mais 3, je suis
obligé de fusionner la cellule O avec deux autres cellules en dessous pour
que ca correspondante bien à l'envoi du fournisseur A. En A4 serait alors de
fournisseur B.
Donc la macro si O1 n'est pas vide laisse A1 à O1 intacte mais supprime
A2:N3 qui sont des informations du fournisseur A.




Avant de se lancer dans des trucs compliqués,que veux-tu exactement ?
Quand on fusionne des cellules, quelle que soit la cellule dans laquelle
on rentre des données initialement, la cellule qui physiquement recoit
la donnée est la cellule la plus en haut à gauche (en conséquence,
aucune autre cellule de la plage fusionnée ne possède de données) . Si
il y a plus de 1 donnée dans la plage fusionnée, les autres données sont
perdues.
Essaye d'expliquer exactement ce que tu souhaites ? En vertu de ce que
j'écris précédemment, je n'arrive pas à discerner ta demande. En effet,
imaginons une plage de données fusionnées p.e A3:C5. Si on scrute la
cellule A3 soit elle a des données soit elle n'en a pas. Si elle en a,
c'est la seule cellule de la plage A3:C5 à en posséder et donc A4 et A5
n'en ont pas.Si elle n'en a pas , alors aucune cellule de A3 à A5 n'en a.
Donc je ne comprends pas ta phrase "elle supprime trop de lignes ".
J'aurais eu plutot tendance à écrire , elle n'en supprime pas assez.
Mais peut-être n'ai je rien compris ?



Bonsoir,

C sur, mais quelque soit la méthode proposée, elle supprime trop de lignes.
Seule la ligne ou se situe une valeur en O n'est pas supprimée mais si
celle-ci est fusionnée en 3 cellule vers le bas, par ex O3:O6 les lignes
A4,A5,A6 sont supprimées car elles ne sont pas fusionnées. Seule la ligne A3
reste avec la cellule O3. Alors comment faire ?

Denis



Bonsoir ..Denis,

....du bas vers le haut bien moins de problèmes pour supprimer!
si vraiment toute la ligne

Sub AvirvidO()
For i = 100 To 3 Step -1
If IsEmpty(Rows(i).Cells(15)) Then
Rows(i).EntireRow.Delete
End If
Next
End Sub

'lSteph

"DENIS" a écrit dans le message de news:


Bonjour à tous,

J'ai un tableau A3:Q100;
Je souhaiterais qu'en partant de la cellule O3, si celle-ci est vide alors
suppression de toute la ligne. Selection.EntireRow.Delete
Et que cette opération se répète jusqu'en ligne 100.

Merci
Denis














Avatar
LSteph
Re,
Tu fais bien heureusement comme il te plait mais permets moi de t'apporter
cette suggestion:
si c'est pour un tableau qui sert à travailler (Rien empêche par la suite de
se faire in fine une version avec fusion si c'est pour présenter).
tu peux avantageusement entrer les données dans les cellules où elles
manquent de sorte que
toutes les cellules devant comporter un info n'en soient pas privées.

Cela t'offrira en outre possibilité de trier, filtrer, travailler avec vba,
mettre des formules matricielles etc.. sans les pb dus aux fusions..

Cordialement.

lSteph
(on est jamais obligé de fusionner )

"DENIS" a écrit dans le message de news:

je me suis mal exprimé.
colonne A : Nom du fournisseur
colonne J : nbre de colis
colonne K : Poids d'un colis
Colonne L : Largeur
Colonne M : Longueur
Colonne N : Hauteur
Colonne O : reférence sous laquelle est partie le ou les colis

Donc si pour le fournisseur A, il n'y a pas qu'un colis mais 3, je suis
obligé de fusionner la cellule O avec deux autres cellules en dessous pour
que ca correspondante bien à l'envoi du fournisseur A. En A4 serait alors
de
fournisseur B.
Donc la macro si O1 n'est pas vide laisse A1 à O1 intacte mais supprime
A2:N3 qui sont des informations du fournisseur A.




Avant de se lancer dans des trucs compliqués,que veux-tu exactement ?
Quand on fusionne des cellules, quelle que soit la cellule dans laquelle
on rentre des données initialement, la cellule qui physiquement recoit
la donnée est la cellule la plus en haut à gauche (en conséquence,
aucune autre cellule de la plage fusionnée ne possède de données) . Si
il y a plus de 1 donnée dans la plage fusionnée, les autres données sont
perdues.
Essaye d'expliquer exactement ce que tu souhaites ? En vertu de ce que
j'écris précédemment, je n'arrive pas à discerner ta demande. En effet,
imaginons une plage de données fusionnées p.e A3:C5. Si on scrute la
cellule A3 soit elle a des données soit elle n'en a pas. Si elle en a,
c'est la seule cellule de la plage A3:C5 à en posséder et donc A4 et A5
n'en ont pas.Si elle n'en a pas , alors aucune cellule de A3 à A5 n'en a.
Donc je ne comprends pas ta phrase "elle supprime trop de lignes ".
J'aurais eu plutot tendance à écrire , elle n'en supprime pas assez.
Mais peut-être n'ai je rien compris ?



Bonsoir,

C sur, mais quelque soit la méthode proposée, elle supprime trop de
lignes.
Seule la ligne ou se situe une valeur en O n'est pas supprimée mais si
celle-ci est fusionnée en 3 cellule vers le bas, par ex O3:O6 les
lignes
A4,A5,A6 sont supprimées car elles ne sont pas fusionnées. Seule la
ligne A3
reste avec la cellule O3. Alors comment faire ?

Denis



Bonsoir ..Denis,

....du bas vers le haut bien moins de problèmes pour supprimer!
si vraiment toute la ligne

Sub AvirvidO()
For i = 100 To 3 Step -1
If IsEmpty(Rows(i).Cells(15)) Then
Rows(i).EntireRow.Delete
End If
Next
End Sub

'lSteph

"DENIS" a écrit dans le message de
news:


Bonjour à tous,

J'ai un tableau A3:Q100;
Je souhaiterais qu'en partant de la cellule O3, si celle-ci est vide
alors
suppression de toute la ligne. Selection.EntireRow.Delete
Et que cette opération se répète jusqu'en ligne 100.

Merci
Denis
















Avatar
LSteph
Re,
Pour être un peu plus précis sur ce que je te proposais et ainsi pour
reprendre
ton exemple tu renseignes correctement O2 et O3
qui si j'ai bien compris sont concernés par la même référence que O1
et plus de problème.

lSteph


"DENIS" a écrit dans le message de news:

je me suis mal exprimé.
colonne A : Nom du fournisseur
colonne J : nbre de colis
colonne K : Poids d'un colis
Colonne L : Largeur
Colonne M : Longueur
Colonne N : Hauteur
Colonne O : reférence sous laquelle est partie le ou les colis

Donc si pour le fournisseur A, il n'y a pas qu'un colis mais 3, je suis
obligé de fusionner la cellule O avec deux autres cellules en dessous pour
que ca correspondante bien à l'envoi du fournisseur A. En A4 serait alors
de
fournisseur B.
Donc la macro si O1 n'est pas vide laisse A1 à O1 intacte mais supprime
A2:N3 qui sont des informations du fournisseur A.




Avant de se lancer dans des trucs compliqués,que veux-tu exactement ?
Quand on fusionne des cellules, quelle que soit la cellule dans laquelle
on rentre des données initialement, la cellule qui physiquement recoit
la donnée est la cellule la plus en haut à gauche (en conséquence,
aucune autre cellule de la plage fusionnée ne possède de données) . Si
il y a plus de 1 donnée dans la plage fusionnée, les autres données sont
perdues.
Essaye d'expliquer exactement ce que tu souhaites ? En vertu de ce que
j'écris précédemment, je n'arrive pas à discerner ta demande. En effet,
imaginons une plage de données fusionnées p.e A3:C5. Si on scrute la
cellule A3 soit elle a des données soit elle n'en a pas. Si elle en a,
c'est la seule cellule de la plage A3:C5 à en posséder et donc A4 et A5
n'en ont pas.Si elle n'en a pas , alors aucune cellule de A3 à A5 n'en a.
Donc je ne comprends pas ta phrase "elle supprime trop de lignes ".
J'aurais eu plutot tendance à écrire , elle n'en supprime pas assez.
Mais peut-être n'ai je rien compris ?



Bonsoir,

C sur, mais quelque soit la méthode proposée, elle supprime trop de
lignes.
Seule la ligne ou se situe une valeur en O n'est pas supprimée mais si
celle-ci est fusionnée en 3 cellule vers le bas, par ex O3:O6 les
lignes
A4,A5,A6 sont supprimées car elles ne sont pas fusionnées. Seule la
ligne A3
reste avec la cellule O3. Alors comment faire ?

Denis



Bonsoir ..Denis,

....du bas vers le haut bien moins de problèmes pour supprimer!
si vraiment toute la ligne

Sub AvirvidO()
For i = 100 To 3 Step -1
If IsEmpty(Rows(i).Cells(15)) Then
Rows(i).EntireRow.Delete
End If
Next
End Sub

'lSteph

"DENIS" a écrit dans le message de
news:


Bonjour à tous,

J'ai un tableau A3:Q100;
Je souhaiterais qu'en partant de la cellule O3, si celle-ci est vide
alors
suppression de toute la ligne. Selection.EntireRow.Delete
Et que cette opération se répète jusqu'en ligne 100.

Merci
Denis
















1 2