Macros
Fermé
Marimar
-
24 mai 2011 à 09:37
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 - 26 mai 2011 à 12:02
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 - 26 mai 2011 à 12:02
A voir également:
- Macros
- Macros word - Guide
- My macros - Télécharger - Organisation
- Ez macros - Télécharger - Divers Utilitaires
- Macros vba excel android ✓ - Forum Excel
- Les macros de ce document ont été désactivées par l'administrateur de votre entreprise ✓ - Forum Bureautique
7 réponses
melanie1324
Messages postés
1505
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
24 mai 2011 à 10:47
24 mai 2011 à 10:47
tout dépend de ton critère qui permet d'extraire les lignes!!
le critére utilisé est une date. j'ai des champs et j'ai envis de copier que les lignes ou lesheures sont inférieur à 19h et inférieur a 16h30.
lors comment je peux ecrire ma macro pour pouvoir extraire que les lignes concernées et les mettres dans une autre feuille
lors comment je peux ecrire ma macro pour pouvoir extraire que les lignes concernées et les mettres dans une autre feuille
melanie1324
Messages postés
1505
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
24 mai 2011 à 12:24
24 mai 2011 à 12:24
Bonjour,
Pour pouvoir encore plus t'aider, la gestion des heures n'étant pas simple sous excel, il faudrait savoir sous quel format sont tes heures.
En attendant, voici le début de ton code
sub
a=1
i=1 'définit la première ligne ou tu as des données, si c'est à la ligne 2 mets i=2
do while sheets("Nomfeuilleoutuastesheures").cells(i,1)<> "" 'cells(i,1) = cellule situe à ligne i et à la colonne 1, prends une colonne ou tu as toujours des données. Si c'est 2 mets cells(i,2)
'la faut écrire ta condition :
if sheets("Nomfeuilleoutuastesheures").cells(i,1)<="19h00" or sheets("Nomfeuilleoutuastesheures").cells(i,1)>="16h30" then ' cette conidtion ne fonctionne pas telle quelle il faut la modifier en fonction de tes données!!
rows(i).copy
sheets("Nomfeuilleoutuveuxmettredonnées").select
cells(a,1).select
activesheet.paste
a=a+1
end if
i=i+1
loop
end sub
Pour pouvoir encore plus t'aider, la gestion des heures n'étant pas simple sous excel, il faudrait savoir sous quel format sont tes heures.
En attendant, voici le début de ton code
sub
a=1
i=1 'définit la première ligne ou tu as des données, si c'est à la ligne 2 mets i=2
do while sheets("Nomfeuilleoutuastesheures").cells(i,1)<> "" 'cells(i,1) = cellule situe à ligne i et à la colonne 1, prends une colonne ou tu as toujours des données. Si c'est 2 mets cells(i,2)
'la faut écrire ta condition :
if sheets("Nomfeuilleoutuastesheures").cells(i,1)<="19h00" or sheets("Nomfeuilleoutuastesheures").cells(i,1)>="16h30" then ' cette conidtion ne fonctionne pas telle quelle il faut la modifier en fonction de tes données!!
rows(i).copy
sheets("Nomfeuilleoutuveuxmettredonnées").select
cells(a,1).select
activesheet.paste
a=a+1
end if
i=i+1
loop
end sub
melanie1324
Messages postés
1505
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
24 mai 2011 à 12:32
24 mai 2011 à 12:32
pour bien définir ta condition, fais le d'abord avec une formule et vois si ca marche. Quand ca l'est incorpore la dans la macro.
Merci bcp Melanie pour ton aide en fait ta macro fonctionne trés bien avec un peu de modif da ma part. ESQ ta une idée pour pouvoir extraire les noms des champs.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
melanie1324
Messages postés
1505
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
24 mai 2011 à 15:39
24 mai 2011 à 15:39
tout dépend de la ligne de ton intitule :
sheets("nomoutuastesdonnées").select
rows(numeroligneintitulé).copy
sheets("nomoutuveuxcoller").select
cells(1,1).select
activesheet.paste
sheets("nomoutuastesdonnées").select
rows(numeroligneintitulé).copy
sheets("nomoutuveuxcoller").select
cells(1,1).select
activesheet.paste
j'ai décidé de travailler avec des sélections c'est a dire que ce qui est sélectionné dans mon fichier excel exécute la Macro( je m'explique ma macro ne dois pas parcourir tt le fichier excel mais elle doit parcourir ce que moi j'ai selectionné dans le fichir excel) ESq vous avez une idée comment je peux dire a la Macro ce qui est séléctionné.
melanie1324
Messages postés
1505
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
26 mai 2011 à 12:02
26 mai 2011 à 12:02
Bonjour,
j'ai un début de réponse mais pour que ca marche, il faut que tu me confirmes cette idée.
Ton filtre ne s'effectue que sur une seule colonne et toujours la même :
Sub x()
Sheets("Feuil1").Select 'Feuil1 est égale au nom de feuilles ou tu a sle filtre
With Worksheets("Feuil1")
If .AutoFilterMode Then
With .AutoFilter.Filters(1) 'le chiffre 1 représente le numéro de colonne ou est ton filtre, si c'est en 2, mets 2
If .On Then a = .Criteria1
End With
End If
End With
a = 2
i = 1
Do While Cells(i, 1) <> ""
If Cells(i, 1).Value = a Then
Rows(i).Copy
Sheets("Feuil2").Select
Cells(a, 1).Select
ActiveSheet.Paste
a=a+1
End If
Sheets("Feuil1").Select
i = i + 1
Loop
End Sub
j'ai un début de réponse mais pour que ca marche, il faut que tu me confirmes cette idée.
Ton filtre ne s'effectue que sur une seule colonne et toujours la même :
Sub x()
Sheets("Feuil1").Select 'Feuil1 est égale au nom de feuilles ou tu a sle filtre
With Worksheets("Feuil1")
If .AutoFilterMode Then
With .AutoFilter.Filters(1) 'le chiffre 1 représente le numéro de colonne ou est ton filtre, si c'est en 2, mets 2
If .On Then a = .Criteria1
End With
End If
End With
a = 2
i = 1
Do While Cells(i, 1) <> ""
If Cells(i, 1).Value = a Then
Rows(i).Copy
Sheets("Feuil2").Select
Cells(a, 1).Select
ActiveSheet.Paste
a=a+1
End If
Sheets("Feuil1").Select
i = i + 1
Loop
End Sub