Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

decaler tableau si lignes précédant sont vide

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

titooooo

XLDnaute Occasionnel
Bonjour le forum

je dispose de plusieurs tableau mais avec parfais un décalage


parfois le tableau commence a partir de la ligne 5 avec les 4 premiers ligne sont vides

je veut décaler mes tableau ( feuille par feuille ) pour que tout mes tableau comment tous a partir de la ligne 1 car j'ai sur une autre feuille des formules qui commencent a parti de la ligne 1

voici une exemple

merci d'avance
 

Pièces jointes

Re : decaler tableau si lignes précédant sont vide

Bonjour titooooo, Roland_M 🙂,

Voir fichier joint. Cliquer sur la croix.
VB:
Option Explicit
Const Feuilles = "Feuil1;Feuil2;Feuil3;tableau type"

Sub SupLignesVides()
Dim F, xrg As Range
  Application.ScreenUpdating = False
  On Error Resume Next
  For Each F In Split(Feuilles, ";")
    Set xrg = Nothing
    With Sheets(F)
      Set xrg = .Columns(1).Find("données", LookIn:=xlValues, lookat:=xlWhole, MatchCase:=True)
      If Not xrg Is Nothing Then If Not xrg.Row = 1 Then .Rows("1:" & xrg.Row - 1).Delete
    End With
  Next F
  MsgBox "Terminé !", vbInformation
End Sub
 

Pièces jointes

Re : decaler tableau si lignes précédant sont vide

Bonjour le forum

d'abords 1000 merci à mapomme

cependant j'ai besoin de qq autre amélioration

dans le cas ou plusieurs lignes commencent par "donnée" dans ce cas si j'exécute la macro meme par erreur 2 fois il m'efface meme des données que j'ai besoin ( exemple dans Feuil2 du fichier que je viens de joindre)

aussi serait il possible dans le cas ou les noms des feuille change a chaque fois ( ca peut meme attendre 20 feuille)

serait il possible que excel me demande pour quels pages devrais je appliquer ce magnifique filtre

merci d'avance
 

Pièces jointes

Re : decaler tableau si lignes précédant sont vide

Bonjour,

pour effacer l'ensemble des lignes vides:

Sub DetruireLignesVides()
For Z = 1 To Sheets.Count
On Error Resume Next
Application.ScreenUpdating = False
Sheets(Z).[A:A].SpecialCells(xlCellTypeBlanks).Delete
Next Z
End Sub
 
Re : decaler tableau si lignes précédant sont vide

re,

en mettant le nom des onglets dans une array comme ceci:

Option Base 1
Sub DetruireLignesVides()
mfiles = Array("feuil1", "feuil2", "feuil3")
For Z = 1 To UBound(mfiles)
On Error Resume Next
Application.ScreenUpdating = False
Sheets(Z).Activate
Sheets(Z).[A:A].SpecialCells(xlCellTypeBlanks).Delete
Next Z
End Sub
 
Re : decaler tableau si lignes précédant sont vide

Bonsoir titooooo, gosselien 🙂,

Une autre version qui:

  • parcourt chaque feuille à la recherche de la première cellule contenant "données" dans la colonne A
  • si les cellules de la colonne A au-dessus de la cellule trouvées ci-dessous sont vides alors on efface ces lignes vides

Normalement, la macro ne devraient pas effacer indûment des lignes même en la ré-exécutant.

Si vous désirez toujours choisir les feuilles à traiter, le faire savoir SVP...

VB:
Sub SupLignesVides()
Dim F As Worksheet, xrg1 As Range, xrg2 As Range
  Application.ScreenUpdating = False
  For Each F In ThisWorkbook.Worksheets
    Set xrg1 = Nothing: Set xrg2 = Nothing
    With F
      Set xrg1 = .Columns(1).Find("données", after:=.Cells(.Rows.Count, "a"), LookIn:=xlValues, lookat:=xlWhole, MatchCase:=True)
      Set xrg2 = .Columns(1).Find("*", after:=.Cells(.Rows.Count, "a"), LookIn:=xlValues, lookat:=xlPart)
      If Not xrg1 Is Nothing Then If Not xrg2.Row < xrg1.Row Then If xrg1.Row > 1 Then .Rows("1:" & xrg1.Row - 1).Delete
    End With
  Next F
  MsgBox "Terminé !", vbInformation
End Sub
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
23
Affichages
455
Réponses
10
Affichages
471
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…