OVH Cloud OVH Cloud

enlever les cellules vides

7 réponses
Avatar
Philippe de PARIS
Bonsoir,
Grace au forum et à Daniel, une macro avait été trouvée pour
enlever les cellules vides sur des colonnes (toutes les données se
regroupent en haut).

Je souhaite sur ce même fichier, faire la même chose, enlever les cellules
vides mais par lignes (les données se regroupent à gauche)
Je n'arrive pas à transformer la macro ci dessous.

en vous remerciant de votre aide
cordialement,
Philippe
---------------
Sub enlever_cellules_vides_colonnes()
'enlever cellules vides sur 60 colonnes et 80 lignes
Dim Ctr As Long
For j = 1 To 60
Ctr = Cells(80, j).End(xlUp).Row
For i = Ctr To 1 Step -1
If Cells(i, j).Value = "" Then
Cells(i, j).Delete xlShiftUp
End If
Next i
Next j
End Sub

7 réponses

Avatar
Daniel
Bonjour.
Essaie :

Sub enlever_cellules_vides_lignes()
Dim Plage As Range, c As Range, NbreCol As Integer
Set Plage = Range("A1", Range("A65536").End(xlUp))
NbreCol = Range("A1").SpecialCells(xlCellTypeLastCell).Column
For Each c In Plage
For i = NbreCol To 1 Step -1
If c.Offset(0, i - 1).Value = "" Then
c.Offset(0, i - 1).Delete xlShiftToLeft
End If
Next i
Next c
End Sub

Cordialement.
Daniel

"Philippe de PARIS" a écrit dans le
message de news:
Bonsoir,
Grace au forum et à Daniel, une macro avait été trouvée pour
enlever les cellules vides sur des colonnes (toutes les données se
regroupent en haut).

Je souhaite sur ce même fichier, faire la même chose, enlever les cellules
vides mais par lignes (les données se regroupent à gauche)
Je n'arrive pas à transformer la macro ci dessous.

en vous remerciant de votre aide
cordialement,
Philippe
---------------
Sub enlever_cellules_vides_colonnes()
'enlever cellules vides sur 60 colonnes et 80 lignes
Dim Ctr As Long
For j = 1 To 60
Ctr = Cells(80, j).End(xlUp).Row
For i = Ctr To 1 Step -1
If Cells(i, j).Value = "" Then
Cells(i, j).Delete xlShiftUp
End If
Next i
Next j
End Sub




Avatar
Philippe de PARIS
Super ça marche !

N'est il pas possible cependant de limiter le périmètre traité par exemple
A1:J20 ?
cela afin de réduire le temps de traitement....

merci de votre aide ...
Philippe

"Daniel" a écrit dans le message de news:
%
Bonjour.
Essaie :

Sub enlever_cellules_vides_lignes()
Dim Plage As Range, c As Range, NbreCol As Integer
Set Plage = Range("A1", Range("A65536").End(xlUp))
NbreCol = Range("A1").SpecialCells(xlCellTypeLastCell).Column
For Each c In Plage
For i = NbreCol To 1 Step -1
If c.Offset(0, i - 1).Value = "" Then
c.Offset(0, i - 1).Delete xlShiftToLeft
End If
Next i
Next c
End Sub

Cordialement.
Daniel

"Philippe de PARIS" a écrit dans le
message de news:
Bonsoir,
Grace au forum et à Daniel, une macro avait été trouvée pour
enlever les cellules vides sur des colonnes (toutes les données se
regroupent en haut).

Je souhaite sur ce même fichier, faire la même chose, enlever les
cellules vides mais par lignes (les données se regroupent à gauche)
Je n'arrive pas à transformer la macro ci dessous.

en vous remerciant de votre aide
cordialement,
Philippe
---------------
Sub enlever_cellules_vides_colonnes()
'enlever cellules vides sur 60 colonnes et 80 lignes
Dim Ctr As Long
For j = 1 To 60
Ctr = Cells(80, j).End(xlUp).Row
For i = Ctr To 1 Step -1
If Cells(i, j).Value = "" Then
Cells(i, j).Delete xlShiftUp
End If
Next i
Next j
End Sub








Avatar
Daniel
Alors :

Sub enlever_cellules_vides_lignes()
Dim Plage As Range, c As Range, NbreCol As Integer
Set Plage = Range("A1:A20")
For Each c In Plage
For i = 10 To 1 Step -1
If c.Offset(0, i - 1).Value = "" Then
c.Offset(0, i - 1).Delete xlShiftToLeft
End If
Next i
Next c
End Sub

Daniel
"Philippe de PARIS" a écrit dans le
message de news:
Super ça marche !

N'est il pas possible cependant de limiter le périmètre traité par exemple
A1:J20 ?
cela afin de réduire le temps de traitement....

merci de votre aide ...
Philippe

"Daniel" a écrit dans le message de news:
%
Bonjour.
Essaie :

Sub enlever_cellules_vides_lignes()
Dim Plage As Range, c As Range, NbreCol As Integer
Set Plage = Range("A1", Range("A65536").End(xlUp))
NbreCol = Range("A1").SpecialCells(xlCellTypeLastCell).Column
For Each c In Plage
For i = NbreCol To 1 Step -1
If c.Offset(0, i - 1).Value = "" Then
c.Offset(0, i - 1).Delete xlShiftToLeft
End If
Next i
Next c
End Sub

Cordialement.
Daniel

"Philippe de PARIS" a écrit dans le
message de news:
Bonsoir,
Grace au forum et à Daniel, une macro avait été trouvée pour
enlever les cellules vides sur des colonnes (toutes les données se
regroupent en haut).

Je souhaite sur ce même fichier, faire la même chose, enlever les
cellules vides mais par lignes (les données se regroupent à gauche)
Je n'arrive pas à transformer la macro ci dessous.

en vous remerciant de votre aide
cordialement,
Philippe
---------------
Sub enlever_cellules_vides_colonnes()
'enlever cellules vides sur 60 colonnes et 80 lignes
Dim Ctr As Long
For j = 1 To 60
Ctr = Cells(80, j).End(xlUp).Row
For i = Ctr To 1 Step -1
If Cells(i, j).Value = "" Then
Cells(i, j).Delete xlShiftUp
End If
Next i
Next j
End Sub












Avatar
Philippe de PARIS
ce qui bloque c'est que cela traite la colonne K alors que je ne souhaite
voir regroupé que les
les cellules A1 à J 20...

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

Alors :

Sub enlever_cellules_vides_lignes()
Dim Plage As Range, c As Range, NbreCol As Integer
Set Plage = Range("A1:A20")
For Each c In Plage
For i = 10 To 1 Step -1
If c.Offset(0, i - 1).Value = "" Then
c.Offset(0, i - 1).Delete xlShiftToLeft
End If
Next i
Next c
End Sub

Daniel
"Philippe de PARIS" a écrit dans le
message de news:
Super ça marche !

N'est il pas possible cependant de limiter le périmètre traité par
exemple A1:J20 ?
cela afin de réduire le temps de traitement....

merci de votre aide ...
Philippe

"Daniel" a écrit dans le message de news:
%
Bonjour.
Essaie :

Sub enlever_cellules_vides_lignes()
Dim Plage As Range, c As Range, NbreCol As Integer
Set Plage = Range("A1", Range("A65536").End(xlUp))
NbreCol = Range("A1").SpecialCells(xlCellTypeLastCell).Column
For Each c In Plage
For i = NbreCol To 1 Step -1
If c.Offset(0, i - 1).Value = "" Then
c.Offset(0, i - 1).Delete xlShiftToLeft
End If
Next i
Next c
End Sub

Cordialement.
Daniel

"Philippe de PARIS" a écrit dans le
message de news:
Bonsoir,
Grace au forum et à Daniel, une macro avait été trouvée pour
enlever les cellules vides sur des colonnes (toutes les données se
regroupent en haut).

Je souhaite sur ce même fichier, faire la même chose, enlever les
cellules vides mais par lignes (les données se regroupent à gauche)
Je n'arrive pas à transformer la macro ci dessous.

en vous remerciant de votre aide
cordialement,
Philippe
---------------
Sub enlever_cellules_vides_colonnes()
'enlever cellules vides sur 60 colonnes et 80 lignes
Dim Ctr As Long
For j = 1 To 60
Ctr = Cells(80, j).End(xlUp).Row
For i = Ctr To 1 Step -1
If Cells(i, j).Value = "" Then
Cells(i, j).Delete xlShiftUp
End If
Next i
Next j
End Sub
















Avatar
Daniel
Alors :

Sub enlever_cellules_vides_lignes()
Dim Plage As Range, c As Range, NbreCol As Integer
Set Plage = Range("A1:A20")
For Each c In Plage
For i = 10 To 1 Step -1
If c.Offset(0, i - 1).Value = "" Then
c.Offset(0, i - 1).Delete xlShiftToLeft
c.Offset(0, 9).Insert xlShiftToRight
End If
Next i
Next c
End Sub

Daniel
"Philippe de PARIS" a écrit dans le
message de news:
ce qui bloque c'est que cela traite la colonne K alors que je ne souhaite
voir regroupé que les
les cellules A1 à J 20...

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

Alors :

Sub enlever_cellules_vides_lignes()
Dim Plage As Range, c As Range, NbreCol As Integer
Set Plage = Range("A1:A20")
For Each c In Plage
For i = 10 To 1 Step -1
If c.Offset(0, i - 1).Value = "" Then
c.Offset(0, i - 1).Delete xlShiftToLeft
End If
Next i
Next c
End Sub

Daniel
"Philippe de PARIS" a écrit dans le
message de news:
Super ça marche !

N'est il pas possible cependant de limiter le périmètre traité par
exemple A1:J20 ?
cela afin de réduire le temps de traitement....

merci de votre aide ...
Philippe

"Daniel" a écrit dans le message de news:
%
Bonjour.
Essaie :

Sub enlever_cellules_vides_lignes()
Dim Plage As Range, c As Range, NbreCol As Integer
Set Plage = Range("A1", Range("A65536").End(xlUp))
NbreCol = Range("A1").SpecialCells(xlCellTypeLastCell).Column
For Each c In Plage
For i = NbreCol To 1 Step -1
If c.Offset(0, i - 1).Value = "" Then
c.Offset(0, i - 1).Delete xlShiftToLeft
End If
Next i
Next c
End Sub

Cordialement.
Daniel

"Philippe de PARIS" a écrit dans
le message de news:
Bonsoir,
Grace au forum et à Daniel, une macro avait été trouvée pour
enlever les cellules vides sur des colonnes (toutes les données se
regroupent en haut).

Je souhaite sur ce même fichier, faire la même chose, enlever les
cellules vides mais par lignes (les données se regroupent à gauche)
Je n'arrive pas à transformer la macro ci dessous.

en vous remerciant de votre aide
cordialement,
Philippe
---------------
Sub enlever_cellules_vides_colonnes()
'enlever cellules vides sur 60 colonnes et 80 lignes
Dim Ctr As Long
For j = 1 To 60
Ctr = Cells(80, j).End(xlUp).Row
For i = Ctr To 1 Step -1
If Cells(i, j).Value = "" Then
Cells(i, j).Delete xlShiftUp
End If
Next i
Next j
End Sub




















Avatar
Philippe de PARIS
il y a blocage avec "objet requis" !

"Daniel" a écrit dans le message de news:
er6I%
Alors :

Sub enlever_cellules_vides_lignes()
Dim Plage As Range, c As Range, NbreCol As Integer
Set Plage = Range("A1:A20")
For Each c In Plage
For i = 10 To 1 Step -1
If c.Offset(0, i - 1).Value = "" Then
c.Offset(0, i - 1).Delete xlShiftToLeft
c.Offset(0, 9).Insert xlShiftToRight
End If
Next i
Next c
End Sub

Daniel
"Philippe de PARIS" a écrit dans le
message de news:
ce qui bloque c'est que cela traite la colonne K alors que je ne souhaite
voir regroupé que les
les cellules A1 à J 20...

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

Alors :

Sub enlever_cellules_vides_lignes()
Dim Plage As Range, c As Range, NbreCol As Integer
Set Plage = Range("A1:A20")
For Each c In Plage
For i = 10 To 1 Step -1
If c.Offset(0, i - 1).Value = "" Then
c.Offset(0, i - 1).Delete xlShiftToLeft
End If
Next i
Next c
End Sub

Daniel
"Philippe de PARIS" a écrit dans le
message de news:
Super ça marche !

N'est il pas possible cependant de limiter le périmètre traité par
exemple A1:J20 ?
cela afin de réduire le temps de traitement....

merci de votre aide ...
Philippe

"Daniel" a écrit dans le message de news:
%
Bonjour.
Essaie :

Sub enlever_cellules_vides_lignes()
Dim Plage As Range, c As Range, NbreCol As Integer
Set Plage = Range("A1", Range("A65536").End(xlUp))
NbreCol = Range("A1").SpecialCells(xlCellTypeLastCell).Column
For Each c In Plage
For i = NbreCol To 1 Step -1
If c.Offset(0, i - 1).Value = "" Then
c.Offset(0, i - 1).Delete xlShiftToLeft
End If
Next i
Next c
End Sub

Cordialement.
Daniel

"Philippe de PARIS" a écrit dans
le message de news:
Bonsoir,
Grace au forum et à Daniel, une macro avait été trouvée pour
enlever les cellules vides sur des colonnes (toutes les données se
regroupent en haut).

Je souhaite sur ce même fichier, faire la même chose, enlever les
cellules vides mais par lignes (les données se regroupent à gauche)
Je n'arrive pas à transformer la macro ci dessous.

en vous remerciant de votre aide
cordialement,
Philippe
---------------
Sub enlever_cellules_vides_colonnes()
'enlever cellules vides sur 60 colonnes et 80 lignes
Dim Ctr As Long
For j = 1 To 60
Ctr = Cells(80, j).End(xlUp).Row
For i = Ctr To 1 Step -1
If Cells(i, j).Value = "" Then
Cells(i, j).Delete xlShiftUp
End If
Next i
Next j
End Sub
























Avatar
Daniel
Oui si une cellule de la colonne A est vide. Correctif :

Sub enlever_cellules_vides_lignes()
Dim Plage As Range, c As Range, NbreCol As Integer
Set Plage = Range("A1:A20")
For Each c In Plage
For i = 10 To 1 Step -1
If c.Offset(0, i - 1).Value = "" Then
Var = c.Offset(0, i - 1).Address
c.Offset(0, 9).Insert xlShiftToRight
c.Offset(0, i - 1).Delete xlShiftToLeft
End If
Next i
Next c
End Sub

Daniel
"Philippe de PARIS" a écrit dans le
message de news:
il y a blocage avec "objet requis" !