extraire des données d'un tableau

wooddy

XLDnaute Nouveau
Bonjour,
j'ai un petit souci avec un tableau excel
j'ai deja une macro qui m'aide à extraire les données dans tableau sous conditions, par contre elle ne permet pas de supprimer les données du tableau d'origine
Est ce que vous pouvez m'aidé pour le faire
vous allez trouvé dans la feuille 1 de la pièce jointe le tableau d'origine et en feuille 2 le 2ème tableau
bien cordialement,
 

Pièces jointes

  • recap tableau de bord.xls
    165.5 KB · Affichages: 1 044
  • recap tableau de bord.xls
    165.5 KB · Affichages: 1 204
  • recap tableau de bord.xls
    165.5 KB · Affichages: 1 211

jpb388

XLDnaute Accro
Re : extraire des données d'un tableau

Bonjour
Remplacer votre mecro par celleci

Sub Macro1()
Application.ScreenUpdating = False
Worksheets("Feuil2").Rows("3:" & Worksheets("Feuil2").Range("b65535").End(xlUp).Row).ClearContents
For i = 3 To Range("B65535").End(xlUp).Row
If Cells(i, 8).Value = Date Then
If Cells(i, 12).Value = "OUI" Then
Range(Cells(i, 2), Cells(i, 11)).Cut Destination:=Worksheets("Feuil2").Range("B65535").End(xlUp).Offset(1, 0)
Rows(i).ClearContents
End If
End If
Next i
Application.ScreenUpdating = True
End Sub

a+
jp
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : extraire des données d'un tableau

Bonjour le fil, bonjour le forum,

Essaie comme ça :
Code:
Sub Macro1()
Dim dl As Integer
Dim cel As Range
Dim dest As Range
 
Application.ScreenUpdating = False
With Sheets("Feuil2")
    dl = .Range("B65535").End(xlUp).Row + 1
    .Rows("3:" & dl).ClearContents
End With
With Sheets("Feuil1")
    dl = .Range("B65536").End(xlUp).Row
    For Each cel In .Range("H3:H" & dl)
        If cel.Value = Date Then
            Set dest = Sheets("Feuil2").Range("B65536").End(xlUp).Offset(1, 0)
            .Range(Cells(cel.Row, 2), Cells(cel.Row, 11)).Copy dest
        End If
    Next cel
End With
Sheets("Feuil2").Select
Range("A1").Select
Application.ScreenUpdating = True
End Sub
 

jpb388

XLDnaute Accro
Re : extraire des données d'un tableau

Bonjour
je viens de la tester et chez moi elle fonctionne parfaitement
as tu pensé à changer la date d'échéance que tu avais mis au 5 et on est le 6
si c'est le cas précise le disfonctionnement
a+
jpb
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : extraire des données d'un tableau

Bonjour le fil, bonjour le forum,

En effet vous avez raison tous les deux...
Jpb quand il dit que sa macro fonctionne et toi, Woody, quand tu dis que la mienne ne supprime pas la ligne du tableau d'origine...

Essaie donc soit la macro de Jpb en mettant la date d'aujourd'hui (mais qui laisse la ligne vide) ou celle-ci commentée :
Code:
Sub Macro1()
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim x As Integer 'déclare la variable x (incrément de ligne)
Dim dest As Range 'déclare la variable dest (DESTination)
 
Application.ScreenUpdating = False 'masque les changements à l'écran
With Sheets("Feuil2") 'prend en compte l'onglet "Feuil2"
    dl = .Range("B65535").End(xlUp).Row + 1 'définit la dernière ligne éditée de la colonne B
    .Rows("3:" & dl).ClearContents 'efface les anciennes données
End With 'fin de la prise en compte l'onglet "Feuil2"
With Sheets("Feuil1") 'prend en compte l'onglet "Feuil1"
    dl = .Range("B65536").End(xlUp).Row 'définit la dernière ligne éditée de la colonne B
    For x = dl To 3 Step -1 'boucle inversée de la dernière ligne à la troisième
        If Cells(x, 8).Value = Date Then 'condition : si la date de cellule de la colonne H est la date d'aujourd'hui
            Set dest = Sheets("Feuil2").Range("B65536").End(xlUp).Offset(1, 0) 'définit la cellule de destination
            .Range(.Cells(x, 2), .Cells(x, 11)).Copy dest 'copie et colle les données de la ligne dans la cellule de destination
            .Range(.Cells(x, 2), .Cells(x, 11)).Delete shift:=xlShiftUp 'supprime les données de la lignes
        End If 'fin de la condition
    Next x 'prochaine ligne (en remontant) de la boucle inversée
End With 'fin de la prise en compte l'onglet "Feuil1"
Sheets("Feuil2").Select 'affiche l'onglet "Feuil2"
Range("A1").Select 'célectionne la cellule A1
Application.ScreenUpdating = True 'affiche les changement à l'écran
End Sub
 

wooddy

XLDnaute Nouveau
Re : extraire des données d'un tableau

oui j'avais modifié mais le problème c'est les les ligne que je veux supprimer restent c'est vrai que j'arrive à extraire les données mais ce que je veux c'est que les données disparaissent du premier tableau. c'est possible ?
 

Discussions similaires

Réponses
3
Affichages
246
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 682
Messages
2 090 889
Membres
104 689
dernier inscrit
phlentier