Effacer les lignes vide d'un tableau variant

Le
Jean Philippe leU
Bonjour,
Je sais pas si c'est possible mais je voudrais effacer les lignes
vides d'un tableau variant

Exemple de mon code

Dim PlageTem As Variant

Workbooks.Open Filename:="C:tmp" & FT, Format:=4
Max = ActiveSheet.UsedRange.Rows.Count - 1

PlageTem = Range(Cells(1, 1), Cells(Max, 50))
ActiveWorkbook.Close

' efface les lignes vide de PlageTem

J'ai cherché sur le forum mais rien vu
Merci a+
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
LSteph
Le #23196941
Bonjour,

Là tu entre direct un objet range dans une variable en variant
Alors se pose cette question

Tu veux supprimer les lignes vides réelles du Activesheet.usedrange
ou
tu veux créer un tableau variant ou seules soient prises en compte les
lignes non vides

Cordialement.

--
LSteph





On 11 mar, 11:38, Jean Philippe leU
Bonjour,
Je sais pas si c'est possible mais je voudrais effacer les lignes
vides d'un tableau variant

Exemple de mon code

Dim PlageTem As Variant

  Workbooks.Open Filename:="C:tmp" & FT, Format:=4
  Max = ActiveSheet.UsedRange.Rows.Count - 1

  PlageTem = Range(Cells(1, 1), Cells(Max, 50))
  ActiveWorkbook.Close

' efface les lignes vide de PlageTem

J'ai cherché sur le forum mais rien vu
Merci a+
Jean Philippe leU
Le #23203251
On 11 mar, 14:54, LSteph
Bonjour,

Là tu entre direct un objet range dans  une variable en variant
Alors se pose cette question

Tu veux supprimer les lignes vides réelles du  Activesheet.usedrange
ou
tu veux créer un tableau variant ou seules soient prises en compte les
lignes non vides

Cordialement.

--
LSteph

On 11 mar, 11:38, Jean Philippe leU






> Bonjour,
> Je sais pas si c'est possible mais je voudrais effacer les lignes
> vides d'un tableau variant

> Exemple de mon code

> Dim PlageTem As Variant

>   Workbooks.Open Filename:="C:tmp" & FT, Format:=4
>   Max = ActiveSheet.UsedRange.Rows.Count - 1

>   PlageTem = Range(Cells(1, 1), Cells(Max, 50))
>   ActiveWorkbook.Close

> ' efface les lignes vide de PlageTem

> J'ai cherché sur le forum mais rien vu
> Merci a+



*********************************************************************
Je voulais travaillé sur le tableau varian pour aller plus vite,
car virer les lignes vides d'une feuille est relativement long.
Bon comme j'ai pas vu de réponse
j'ai modifié en amont pour ne plus avoir de ligne vide.
a+
*****************************************************************
Jacquouille
Le #23203451
Bonjour
Et pourquoi ne filtres-tu pas sur place?



Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"Jean Philippe leU" a écrit dans le message de groupe de discussion :


On 11 mar, 14:54, LSteph
Bonjour,

Là tu entre direct un objet range dans une variable en variant
Alors se pose cette question

Tu veux supprimer les lignes vides réelles du Activesheet.usedrange
ou
tu veux créer un tableau variant ou seules soient prises en compte les
lignes non vides

Cordialement.

--
LSteph

On 11 mar, 11:38, Jean Philippe leU






> Bonjour,
> Je sais pas si c'est possible mais je voudrais effacer les lignes
> vides d'un tableau variant

> Exemple de mon code

> Dim PlageTem As Variant

> Workbooks.Open Filename:="C:tmp" & FT, Format:=4
> Max = ActiveSheet.UsedRange.Rows.Count - 1

> PlageTem = Range(Cells(1, 1), Cells(Max, 50))
> ActiveWorkbook.Close

> ' efface les lignes vide de PlageTem

> J'ai cherché sur le forum mais rien vu
> Merci a+



*********************************************************************
Je voulais travaillé sur le tableau varian pour aller plus vite,
car virer les lignes vides d'une feuille est relativement long.
Bon comme j'ai pas vu de réponse
j'ai modifié en amont pour ne plus avoir de ligne vide.
a+
*****************************************************************
MichD
Le #23203791
Bonjour,

Essaie ceci :

'-----------------------------------------------
Sub test()
Dim DerLig As Long, DerCol As Integer, Rg As Range
Dim Sh As Worksheet, PlageTem As Variant, Rg1 As Range

Workbooks.Open Filename:="C:tmp" & FT, Format:=4

On Error Resume Next
With ActiveSheet
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
DerLig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
Set Rg = .Range("A1", .Cells(DerLig, DerCol))
End With
If Err <> 0 Then
Err = 0
MsgBox "Opération annulée. Plage de cellules indéfinies"
Exit Sub
End If
Application.ScreenUpdating = False

'Ajout d'une feuille
Set Sh = Worksheets.Add
Rg.Copy Sh.Range("A1")

With Sh
'Définit où on ajoute les formules
Set Rg1 = .Range(.Cells(1, DerCol + 1), .Cells(DerLig, DerCol + 1))
End With
'Insère la formule dans la plage
Rg1.Formula = "=if(countA(" & Rg1(1).Offset(, -Rg.Columns.Count). _
Resize(, Rg.Columns.Count).Rows(1).Address(0, 0) & ")=0,""E"",1)"

'Masque les lignes qui affiche un résultat "E"
Rg1.SpecialCells(xlCellTypeFormulas, 2).EntireRow.Delete
Rg1.Clear
PlageTem = Sh.Range("A1").CurrentRegion
Application.DisplayAlerts = False
Sh.Delete
Application.DisplayAlerts = True

'pour tester que PlageTem contient seulement ce que tu désires
'tu peux coller ta plage dans une feuille
Cells(1, DerCol + 2).Resize(UBound(PlageTem, 1), UBound(PlageTem, 2)) = PlageTem

Application.ScreenUpdating = True
End Sub
'-----------------------------------------------


MichD
--------------------------------------------
Publicité
Poster une réponse
Anonyme