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.
supprime toutes les lignes pour lequelles les lignes de 3 à 100 ont une colonne O vide.
Set cselc = Nothing For Each c In Range("O3:O100") If IsEmpty(c) Then If cselc Is Nothing Then Set cselc = Union(c, c) Else Set cselc = Union(cselc, c) End if End if Next
cselc.EntireRow.Delete
A+
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
Bonjour,
supprime toutes les lignes pour lequelles les lignes de 3 à 100 ont une
colonne O vide.
Set cselc = Nothing
For Each c In Range("O3:O100")
If IsEmpty(c) Then
If cselc Is Nothing Then
Set cselc = Union(c, c)
Else
Set cselc = Union(cselc, c)
End if
End if
Next
cselc.EntireRow.Delete
A+
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.
supprime toutes les lignes pour lequelles les lignes de 3 à 100 ont une colonne O vide.
Set cselc = Nothing For Each c In Range("O3:O100") If IsEmpty(c) Then If cselc Is Nothing Then Set cselc = Union(c, c) Else Set cselc = Union(cselc, c) End if End if Next
cselc.EntireRow.Delete
A+
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
michdenis
Bonjour Denis,
Si tu utilises seulement la colonne O:O comme critère (est vide) pour supprimer la ligne entière, tu peux utiliser ceci :
On error resume next Range("O3:O100").SpecialCells(xlCellTypeBlanks).EntireRow.Delete (xlUp)
Salutations!
"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
Bonjour Denis,
Si tu utilises seulement la colonne O:O comme critère (est vide)
pour supprimer la ligne entière, tu peux utiliser ceci :
On error resume next
Range("O3:O100").SpecialCells(xlCellTypeBlanks).EntireRow.Delete (xlUp)
Salutations!
"DENIS" <DENIS@discussions.microsoft.com> a écrit dans le message de news: 17830313-DBAA-4A93-B439-4AC5F9B0E3E4@microsoft.com...
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.
Si tu utilises seulement la colonne O:O comme critère (est vide) pour supprimer la ligne entière, tu peux utiliser ceci :
On error resume next Range("O3:O100").SpecialCells(xlCellTypeBlanks).EntireRow.Delete (xlUp)
Salutations!
"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
Jacky
Bonsoir, Ou, un peu plus basic '--------- For i = 100 To 3 Step -1 If Range("O" & i) = "" Then Range("O" & i).EntireRow.Delete Next '------------ Salutations JJ
"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
Bonsoir,
Ou, un peu plus basic
'---------
For i = 100 To 3 Step -1
If Range("O" & i) = "" Then Range("O" & i).EntireRow.Delete
Next
'------------
Salutations
JJ
"DENIS" <DENIS@discussions.microsoft.com> a écrit dans le message de news:
17830313-DBAA-4A93-B439-4AC5F9B0E3E4@microsoft.com...
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.
Bonsoir, Ou, un peu plus basic '--------- For i = 100 To 3 Step -1 If Range("O" & i) = "" Then Range("O" & i).EntireRow.Delete Next '------------ Salutations JJ
"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
LSteph
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
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" <DENIS@discussions.microsoft.com> a écrit dans le message de news:
17830313-DBAA-4A93-B439-4AC5F9B0E3E4@microsoft.com...
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.
...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
DENIS
Merci,
Ca fonctionne très bien mais j'ai encore un ti problème. Il arrive que la cellule O soit fusionnée en 2/3 ou 4 cellule. Dans ce cas, la macro ci-dessous efface aussi les lignes 2/3 ou 4 qui vont de A:N qui ne sont pas fusionnées. par ex : A3:O6 mais seule O3 à O6 est fusionnée. Les lignes A3 à N6 ne sont pas fusionnées mais vont avec l'info en O3:O6 J'ai obtenu ce résultat avec Selection.EntireRow.Delete.
Denis
Bonjour,
supprime toutes les lignes pour lequelles les lignes de 3 à 100 ont une colonne O vide.
Set cselc = Nothing For Each c In Range("O3:O100") If IsEmpty(c) Then If cselc Is Nothing Then Set cselc = Union(c, c) Else Set cselc = Union(cselc, c) End if End if Next
cselc.EntireRow.Delete
A+
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
Merci,
Ca fonctionne très bien mais j'ai encore un ti problème.
Il arrive que la cellule O soit fusionnée en 2/3 ou 4 cellule.
Dans ce cas, la macro ci-dessous efface aussi les lignes 2/3 ou 4 qui vont
de A:N qui ne sont pas fusionnées.
par ex :
A3:O6 mais seule O3 à O6 est fusionnée. Les lignes A3 à N6 ne sont pas
fusionnées mais vont avec l'info en O3:O6
J'ai obtenu ce résultat avec Selection.EntireRow.Delete.
Denis
Bonjour,
supprime toutes les lignes pour lequelles les lignes de 3 à 100 ont une
colonne O vide.
Set cselc = Nothing
For Each c In Range("O3:O100")
If IsEmpty(c) Then
If cselc Is Nothing Then
Set cselc = Union(c, c)
Else
Set cselc = Union(cselc, c)
End if
End if
Next
cselc.EntireRow.Delete
A+
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.
Ca fonctionne très bien mais j'ai encore un ti problème. Il arrive que la cellule O soit fusionnée en 2/3 ou 4 cellule. Dans ce cas, la macro ci-dessous efface aussi les lignes 2/3 ou 4 qui vont de A:N qui ne sont pas fusionnées. par ex : A3:O6 mais seule O3 à O6 est fusionnée. Les lignes A3 à N6 ne sont pas fusionnées mais vont avec l'info en O3:O6 J'ai obtenu ce résultat avec Selection.EntireRow.Delete.
Denis
Bonjour,
supprime toutes les lignes pour lequelles les lignes de 3 à 100 ont une colonne O vide.
Set cselc = Nothing For Each c In Range("O3:O100") If IsEmpty(c) Then If cselc Is Nothing Then Set cselc = Union(c, c) Else Set cselc = Union(cselc, c) End if End if Next
cselc.EntireRow.Delete
A+
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
Jacky
Bonsoir michoudenis
Quelle est la fonction de (xlUp) dans ce cas ???? Stp
Salutations JJ
"michdenis" a écrit dans le message de news:
Bonjour Denis,
Si tu utilises seulement la colonne O:O comme critère (est vide) pour supprimer la ligne entière, tu peux utiliser ceci :
On error resume next Range("O3:O100").SpecialCells(xlCellTypeBlanks).EntireRow.Delete (xlUp)
Salutations!
"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
Bonsoir michoudenis
Quelle est la fonction de (xlUp) dans ce cas ????
Stp
Salutations
JJ
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
u8K8CWUGGHA.3120@TK2MSFTNGP10.phx.gbl...
Bonjour Denis,
Si tu utilises seulement la colonne O:O comme critère (est vide)
pour supprimer la ligne entière, tu peux utiliser ceci :
On error resume next
Range("O3:O100").SpecialCells(xlCellTypeBlanks).EntireRow.Delete (xlUp)
Salutations!
"DENIS" <DENIS@discussions.microsoft.com> a écrit dans le message de news:
17830313-DBAA-4A93-B439-4AC5F9B0E3E4@microsoft.com...
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.
Quelle est la fonction de (xlUp) dans ce cas ???? Stp
Salutations JJ
"michdenis" a écrit dans le message de news:
Bonjour Denis,
Si tu utilises seulement la colonne O:O comme critère (est vide) pour supprimer la ligne entière, tu peux utiliser ceci :
On error resume next Range("O3:O100").SpecialCells(xlCellTypeBlanks).EntireRow.Delete (xlUp)
Salutations!
"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
DENIS
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
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" <DENIS@discussions.microsoft.com> a écrit dans le message de news:
17830313-DBAA-4A93-B439-4AC5F9B0E3E4@microsoft.com...
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.
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
LSteph
Re ,
Là c'est un autre sujet. Les fusions c'est un truc à écarter dès le départ. Pardon les fusions sont une source de M... infinie .. Le mieux amha est de ne pas s'en servir sauf pour de la présentation... et encore en aucun cas pour gèrer des données et encore moins dans des tris tables bases .. à fortiori avec vba quoique mergecells puisse être vérifié.. je dirais même plutôt M__d_cells Selon ce que je viens d'évoquer il y a solution mais je préfère écarter toute hypothèse avec des fusions.
Désolé.
a+
lSteph
"DENIS" a écrit dans le message de news:
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
Re ,
Là c'est un autre sujet.
Les fusions c'est un truc à écarter dès le départ.
Pardon les fusions sont une source de M... infinie ..
Le mieux amha est de ne pas s'en servir sauf pour de la présentation... et
encore
en aucun cas pour gèrer des données et encore moins dans des tris tables
bases ..
à fortiori avec vba quoique mergecells puisse être vérifié.. je dirais même
plutôt M__d_cells
Selon ce que je viens d'évoquer il y a solution mais je préfère écarter
toute hypothèse avec des fusions.
Désolé.
a+
lSteph
"DENIS" <DENIS@discussions.microsoft.com> a écrit dans le message de news:
4ADB2578-DDD5-46CD-BD00-AC9451D0939A@microsoft.com...
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" <DENIS@discussions.microsoft.com> a écrit dans le message de
news:
17830313-DBAA-4A93-B439-4AC5F9B0E3E4@microsoft.com...
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.
Là c'est un autre sujet. Les fusions c'est un truc à écarter dès le départ. Pardon les fusions sont une source de M... infinie .. Le mieux amha est de ne pas s'en servir sauf pour de la présentation... et encore en aucun cas pour gèrer des données et encore moins dans des tris tables bases .. à fortiori avec vba quoique mergecells puisse être vérifié.. je dirais même plutôt M__d_cells Selon ce que je viens d'évoquer il y a solution mais je préfère écarter toute hypothèse avec des fusions.
Désolé.
a+
lSteph
"DENIS" a écrit dans le message de news:
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
anonymousA
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
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" <DENIS@discussions.microsoft.com> a écrit dans le message de news:
17830313-DBAA-4A93-B439-4AC5F9B0E3E4@microsoft.com...
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.
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
michdenis
Bonjour Jacky,
Sélectionnes quelques lignes entières, active l'enregistreur de macro et supprime les lignes... le code généré est :
Selection.Delete Shift:=xlUp
Moi je n'ai rien fait d'autre que de copier !!!
;-))
Salutations!
"Jacky" a écrit dans le message de news: eTBp$ Bonsoir michoudenis
Quelle est la fonction de (xlUp) dans ce cas ???? Stp
Salutations JJ
"michdenis" a écrit dans le message de news:
Bonjour Denis,
Si tu utilises seulement la colonne O:O comme critère (est vide) pour supprimer la ligne entière, tu peux utiliser ceci :
On error resume next Range("O3:O100").SpecialCells(xlCellTypeBlanks).EntireRow.Delete (xlUp)
Salutations!
"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
Bonjour Jacky,
Sélectionnes quelques lignes entières, active l'enregistreur de macro et supprime
les lignes... le code généré est :
Selection.Delete Shift:=xlUp
Moi je n'ai rien fait d'autre que de copier !!!
;-))
Salutations!
"Jacky" <non@wo.fr> a écrit dans le message de news: eTBp$hUGGHA.1100@TK2MSFTNGP10.phx.gbl...
Bonsoir michoudenis
Quelle est la fonction de (xlUp) dans ce cas ????
Stp
Salutations
JJ
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
u8K8CWUGGHA.3120@TK2MSFTNGP10.phx.gbl...
Bonjour Denis,
Si tu utilises seulement la colonne O:O comme critère (est vide)
pour supprimer la ligne entière, tu peux utiliser ceci :
On error resume next
Range("O3:O100").SpecialCells(xlCellTypeBlanks).EntireRow.Delete (xlUp)
Salutations!
"DENIS" <DENIS@discussions.microsoft.com> a écrit dans le message de news:
17830313-DBAA-4A93-B439-4AC5F9B0E3E4@microsoft.com...
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.
Sélectionnes quelques lignes entières, active l'enregistreur de macro et supprime les lignes... le code généré est :
Selection.Delete Shift:=xlUp
Moi je n'ai rien fait d'autre que de copier !!!
;-))
Salutations!
"Jacky" a écrit dans le message de news: eTBp$ Bonsoir michoudenis
Quelle est la fonction de (xlUp) dans ce cas ???? Stp
Salutations JJ
"michdenis" a écrit dans le message de news:
Bonjour Denis,
Si tu utilises seulement la colonne O:O comme critère (est vide) pour supprimer la ligne entière, tu peux utiliser ceci :
On error resume next Range("O3:O100").SpecialCells(xlCellTypeBlanks).EntireRow.Delete (xlUp)
Salutations!
"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.