Copcol de valeurs filtrées

  • Initiateur de la discussion Eric
  • Date de début
E

Eric

Guest
Bonjour
Je souhaite créer un nouveau tableau à l'aide d'un premier en me servant de filtres
[file name=copcol.zip size=23825]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/copcol.zip[/file]
 

Pièces jointes

  • copcol.zip
    23.3 KB · Affichages: 20
  • copcol.zip
    23.3 KB · Affichages: 18
  • copcol.zip
    23.3 KB · Affichages: 19

JYLL

Nous a quitté
Repose en paix
Bonjour Eric,

J'ai mis les explications dans ton classeur, si j'ai bien compris ta question.

Bon test .

Amicalement

Jean-Yves [file name=copcol_20060601143119.zip size=28178]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/copcol_20060601143119.zip[/file]
 

Pièces jointes

  • copcol_20060601143119.zip
    27.5 KB · Affichages: 16
E

Eric

Guest
Merci bien JYLL

C'est très intéressant, je ne connaissais pas ces macros
Mais je ne comprends pas bien ta phrase
'Tu sélectionnesl a copier en maintenant appuyée la touche'ALT'
... que veut dire 'sélectionnesl' ?
 

JYLL

Nous a quitté
Repose en paix
Re bonsoir Eric,

Tout simplement avec un clic Gauche de la souris en maintenant la touche 'Alt' enfoncée tu prends toutes les cellules que tu veux et tu fais copier, tu te déplaces où tu veux coller et tu colles c'est terminé. Seules les cellules filtrées sont recopiées. Maintenant si tu veux le faire par macro, tu peux enregistrer une macro en automatique en refaisant tout cela et venir la modifier pour trouver automatiquement la dernière ligne utilisée.

Bon test

Amicalement

Jean-Yves

Message édité par: jyll, à: 01/06/2006 22:40

Message édité par: jyll, à: 01/06/2006 22:43
 
E

Eric

Guest
Compris !
Merci bien JYLL

Mais c plus 9000 mais 50000 lignes que j'ai à traiter
Je vais y passer le mois !!
Je pensais à une macro qui me donnerais le 'tableau final souhaité' en un clic
 

JYLL

Nous a quitté
Repose en paix
Re bonsoir


Finalement j'ai pris un peu de temps, essai la macro qui estfaite. Il faut sélectionner avec le fitre et après appuyer sur le bouton et la macro prend le résultats du filtre et le colle dans la feuille 'Résultats' La feuille 'résultats' est effacée à chaque fois que tu appuyes sur le bouton.

Bon test

Amicalement

Jean-Yves
 

JYLL

Nous a quitté
Repose en paix
Re bonsoir,

Voici la macro, mais arriveras tu à l'utiliser, sinon tu me donnes ton adesse perso car il plus de 50Ko et je te l'envoie, maintenant il fonctionne

Code:
Sub Extraction()
'

'  le 01/06/2006 par Jyll
'

'effacement des données en feuille 'Résultats'
    Sheets('Résultats').Select
    Range('A5:D65536').Select
    Selection.ClearContents
    
' Copies des données filtrées en 'feuil2'
    
    Sheets('Feuil2').Select
    Range('A71:D65536').Select
    Range('A3:D65536').Select
    Selection.Copy
    
'collage des données en feuille 'Résultats'
    
    Sheets('Résultats').Select
    Range('A5').Select
    ActiveSheet.Paste
    Range('a1').Select
End Sub




Amicalement
Jean-Yves
 
E

Eric

Guest
Grâce à JYLL
J'ai un début de piste
La macro est faite
Je souhaite l'automatiser pour toutes les heures de la colonne B
en sachant qu'il faut selectionner toutes les valeurs qui apparaîtrons dans les colonnes D E F

Quelqu'un saurait faire ?

Merci d'avance
Eric
[file name=copcol_20060602234144.zip size=45391]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/copcol_20060602234144.zip[/file]
 

Pièces jointes

  • copcol_20060602234144.zip
    44.3 KB · Affichages: 15

JYLL

Nous a quitté
Repose en paix
Bonjour Eric et le forum.

Le classeur même zipé dépasse les 50Ko, alors je l'ai envoyé par mail. Pour ceux qui sont que la reponse intéresse je vous met la macro réalisée.

Code:
Sub jyll()
' Minimise la taille du classeur pour aller plus vite
ActiveWindow.WindowState = xlMinimized
' Permet de balayer de 8:00:00 à 20:00:00 par minutes, du coup le résultat est dans l'ordre
' Dans le calcul  1 c'est pour 24 heures je divise par 24 pour avoir la valeur 1:00:00
' et multiplie par 8 pour avoir 8:00
' dans le step 1/1440 donne la valeur  d'une minute
For i = (1 / 24 * 8) To (1 / 24 * 20) Step 1 / 1440
temps = CDate(i)
Critére = CStr(temps)
' Je test si l'heure est pus petite que 10 heures car il n'y a pas de zéro avant  ex  8:00:00
If i < 1 / 24 * 10 Then
'Je décale mon Heure en suprimant le premier zéro et j'ajoute le zéro de la fi puisque les secondes en comportent  3
Critére = Mid$(temps, 2, Len(Critére)) & '0'
Else
Critére = Critére & '0'
End If
Sheets('feuil1').Select
' Critére est l'heure sélectionnée par ordre croissant
    Selection.AutoFilter Field:=2, Criteria1:=Critére
    Range('B3:F65536').Select
    Selection.Copy
    Sheets('Feuil3').Select
    Range('a1').Select
    ActiveSheet.Paste
    Range('a2').Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets('Feuil2').Select
    'Permet de trouver la derniére cellule vide en ajoutant 1 dans la colonne B
    cellule_vide = Range('B65536').End(xlUp).Row + 1
    Range('A' & cellule_vide).Select
    ActiveSheet.Paste
    Sheets('Feuil3').Select
    If Cells(1, 1) = '' Then GoTo Suite
    Range('C2:F100').Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets('Feuil2').Select
    Range('B' & cellule_vide).Select
    Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
    Sheets('Feuil3').Select
    Cells.Select
    Application.CutCopyMode = False
    Selection.ClearContents
Suite: Next i
' Repasse le classeur en grand
ActiveWindow.WindowState = xlMaximized
Sheets('Feuil1').Select
'Réaffiche toutes les lignes de la 'feuil1'
Selection.AutoFilter Field:=2
Range('A1').Select
End Sub

amicalement.

Jean-Yves

Message édité par: jyll, à: 04/06/2006 16:55
 

Discussions similaires

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16