Extraction lignes sans "X" avec VBA

MACAT

XLDnaute Nouveau
Bonsoir à tous,

J'ai adapté un code devant extraire des lignes dont la cellule en colonne F est restée vide et les copier dans mon récapitulatif.

J'ai comme problème que les lignes sont recopiées à plusieurs reprise. Une fois me suffirait :D et je n'arrive pas à extraire les lignes en question.

Voici le code :
Code:
Sub Récap_par_ville()

'Récupérer les lignes où la colonne F est sans X pour toutes les feuilles du classeur nommées Lyon 07 10, Marseille 07 10...)

Dim I As Integer
Dim Cel As Range
Dim DerLig As Integer
Dim C As String
 
For Each C In Worksheets("F2:F100")
If Not Application.Function.CountIf = " " Then
C.EntireRow.Hidden = True

'Définit la page contenant le récap et la première ligne vide
DerLig = Sheets("récap 2010").Range("A65536").End(xlUp).Row + 1

For I = 1 To Sheets.Count
    If IsNumeric(Right(Sheets(I).Name, 1)) Then
        
        With Sheets(I)
            For Each Cel In .Range("A2:E" & .Range("A65536").End(xlUp).Row)
                If IsDate(Cel.Value) Then
                    'copie NOM
                    Sheets("récap 2010").Range("A" & DerLig) = .Range("A" & Cel.Row)
                    'copie N° FACTURE
                    Sheets("récap 2010").Range("B" & DerLig) = .Range("B" & Cel.Row)
                    'copie DATE FACTURE
                    Sheets("récap 2010").Range("C" & DerLig) = .Range("C" & Cel.Row)
                    'copie DATE DE REGLEMENT
                    Sheets("récap 2010").Range("D" & DerLig) = .Range("D" & Cel.Row)
                    'copie SAV
                    Sheets("récap 2010").Range("E" & DerLig) = .Range("E" & Cel.Row)
                    DerLig = DerLig + 1 'copier en dessous de la dernière ligne renseignée
End If
Next C
End With
                End If
            Next Cel
        End With
    End If
Next I
End Sub

Je vous remercie d'avance de bien vouloir me corriger.
 

skoobi

XLDnaute Barbatruc
Re : Extraction lignes sans "X" avec VBA

Re bonjour Macat,

ton code beuguait du cout j'ai fais le mien:

Code:
Sub Récap_par_ville2()
Dim Sh As Worksheet, Doss As Range
'on boucle sur toutes les feuilles
For Each Sh In Sheets
  'si la feuille n'est pas "récap 2010", on fait le traitement
  If Sh.Name <> "récap 2010" Then
    With Sh
    'pour chaque cellule vide colonne F "de la liste" feuille courante
      For Each Doss In .Range("F2:F" & .Range("A65536").End(xlUp).Row).SpecialCells(xlCellTypeBlanks)
        'on copie de la colonne A à E de la ligne courante "à la suite" dans la colonne A feuille "récap 2010"
        .Range("A" & Doss.Row & ":E" & Doss.Row).Copy Sheets("récap 2010").Range("A65536").End(xlUp).Offset(1, 0)
      Next
    End With
  End If
Next
End Sub

Si j'ai bien compris...

Bon test.
 

MACAT

XLDnaute Nouveau
Re : Extraction lignes sans "X" avec VBA

Merci merci :)

C'est exactement cela.
Votre code est bien plus simple que ce que j'essayais de faire. :D
C'est cela qui n'est pas du tout au point en ce qui me concerne.
J'ai l'idée de ce que je veux améliorer dans mes fichiers mais pour y arriver...

En pièce jointe le fichier terminé
 

Pièces jointes

  • Récap 2010.zip
    31 KB · Affichages: 54
Dernière édition:

Discussions similaires

Réponses
7
Affichages
334
Réponses
11
Affichages
304
Réponses
2
Affichages
156

Statistiques des forums

Discussions
312 330
Messages
2 087 339
Membres
103 524
dernier inscrit
Smile1813