Boucle VBA ...

davidtrio

XLDnaute Nouveau
Bonsoir le forum,

Une petite optimisation à vous soumettre ...

Je souhaiterai lire un fichier tel que :
A B C D E F
01 U U U U U U
02
03 A A A A A A
.....

Losque la cellule en A est vide copier la ligne -1 pour obtenir :


A B C D E F
01 U U U U U U
02 U U U U U U
03 A A A A A A


J'ai commencé et voilà ce que j'obtiens, pouvez m'aider s'il vous plait ....

Sub miseenforme()
Dim x As Integer

'Boucle sur chaque classeur de l'application Excel
For Each Wb In Application.Workbooks

'Boucle sur chaque feuille de chaque classeur
'Boucle de 1 à 10
For x = 2 To 10000
If IsEmpty(Cells(x, 1)) Then [x-1, 1:x-1,9].Select
Selection.Copy
Cells(x, 1).Select
ActiveSheet.Paste
Next x
Next Wb

End Sub


Merci d'avance
 

vbacrumble

XLDnaute Accro
Re : Boucle VBA ...

Bonsoir


Une autre approche (ici macro valable pour la feuille active)
Code:
Sub miseneforme()
Dim datas As Range
Set datas = ActiveSheet.UsedRange
datas.SpecialCells(xlCellTypeBlanks).EntireRow.Delete shift:=xlUp
End Sub

EDITION: pour traiter le classeur entier

Code:
Sub misenformeWBK()
Dim i As Long
For i = 1 To Worksheets.Count
    With Sheets(i).UsedRange
        .SpecialCells(xlCellTypeBlanks).EntireRow.Delete shift:=xlUp
    End With
Next
End Sub
A+
 
Dernière édition:

Catrice

XLDnaute Barbatruc
Re : Boucle VBA ...

Bonsoir,

Ci-joint une solution

Sub Test()
For Each Y In Sheets
If Y.Range("A1") = "" Then Exit For
For Each X In Y.Range("A1:" & Y.Range("A65536").End(xlUp).Address)
If X = "" Then Y.Range(X.Offset(-1, 0), Y.Cells(X.Offset(-1, 0).Row, 256).End(xlToLeft)).Copy X
Next
Next
End Sub
 

Pièces jointes

  • Classeur1.xls
    29 KB · Affichages: 50
  • Classeur1.xls
    29 KB · Affichages: 50
  • Classeur1.xls
    29 KB · Affichages: 50
Dernière édition:

Discussions similaires

Réponses
36
Affichages
2 K
Réponses
12
Affichages
540

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 184
dernier inscrit
Di Martino