KWET2501
Messages postés8Date d'inscriptionvendredi 14 septembre 2007StatutMembreDernière intervention20 septembre 2007
-
20 sept. 2007 à 00:11
KWET2501
Messages postés8Date d'inscriptionvendredi 14 septembre 2007StatutMembreDernière intervention20 septembre 2007
-
20 sept. 2007 à 11:59
Bonjour
je suis débutant dans le sujet et dans le forum d'ailleur, et suis ravis d'y participer
mon sujet:
sur une feuille excel je présente un tableau avec comme titre colonne: Semaine, Nature , Lieu, Observation.
dans semaine on retrouve (32,34,35,.....52) Nature (Forêt, Aquatique......) Lieu(Bordeaux, Paris...) observation (cyclisme, Natation....)
je recherche a faire une macro me permettant de trier mes données, elle me demanderais sous forme input box de rentrer un N° de semaine puis me retourner les résultats obtenus sur une nouvelle feuille en reprenant les titres de colonnes (en sachant qu'il peut exister plusieurs lignes avec le même N° de semaine)
le même principe qu'il filtre automatique ou éloboré sous Excel mais sous forme macro
mon Problème:
étant nouveau dans le domaine je suis en difficulté: en voici le code que j'ai essayé de faire:
code: Sub tri_semaine()
Sheets.Add
ActiveSheet.Name = "Resultat_Semaine_Choisie"' création d'une feuille nouvelle nommée : Resultat_Semaine_Choisie
' recopie du titre des données situées en A5, B5, C5, D5 de la feuil1
Range("A5").Select
ActiveCell.FormulaR1C1 = "=liste_exercé!RC"
Range("A1:B1").FillRight
J'arrive a créer le nouvelle feuille nommée Resultat_semaine_choisie, sur celle ci je retrouve bien mes différentes entêtes de tableau, j'ai également l'inputBox me demandant de choisir ma semaine et le problème se trouve après; j'arrive pas à filtrer le tableau pour insérer dans la nouvelle feuille le ou les résultats attendus
tubafat
Messages postés79Date d'inscriptionlundi 17 juillet 2006StatutMembreDernière intervention25 septembre 2007 20 sept. 2007 à 09:51
Bonjour,
j'avoue que ton code me laisse énormément perplexe...
Pourquoi passer par l'écriture de formules dans les cellules pour seulement recopier un titre?
De plus, tu fais référence à une Sheets("Feuil1") à la fin de ton code, alors que la feuille sur laquelle tu veux travailler s'appelle Sheets("liste_exercé").
Evite également les accents dans les noms de feuille, ou les noms de contrôle...
Un petit code qui me semble plus judicieux (mais je peux me tromper)...
Sub tri_semaine()
Dim reponse As Integer
Dim i As Integer
Sheets.Add
'ATTENTION la feuille ne doit pas déjà exister, sinon la macro plante!!
ActiveSheet.Name = "Resultat_Semaine_Choisie" ' création d'une feuille nouvelle nommée : Resultat_Semaine_Choisie
' recopie du titre des données situées en A5, B5, C5, D5de la feuil1
ActiveWorkbook.Worksheets("Resultat_Semaine_Choisie").Range("A5:D5").Value = ActiveWorkbook.Worksheets("liste_exercé").Range("A5:D5").Value
' choix semaine
reponse = InputBox("choisir la semaine")
'initialisation des variables de boucle
i = 6
j = 6
'boucle de copie
While ActiveWorkbook.Worksheets("liste_exercé").Range("A" & i).Value <> ""
'test de la valeur de la colonne semaine
If ActiveWorkbook.Worksheets("liste_exercé").Range("A" & i).Value = reponse Then
ActiveWorkbook.Worksheets("Resultat_Semaine_Choisie").Range("A" & j & ":D" & j).Value = ActiveWorkbook.Worksheets("liste_exercé").Range("A" & i & ":D" & i).Value
j = j + 1
End If
i = i + 1
Wend
End Sub
A améliorer bien sur (gestion des entrées non numériques de l'inut box, test de l'existence de la feuille résultat,...) mais ça te fait un bonne base pour commencer.
Tubafat Avant d'imprimer, pensez à l'environnement
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 20 sept. 2007 à 11:53
Tu pourrais aussi utiliser la méthode du filtre comme tu as dit ...
Il te suffit d'utiliser l'enregistreur de macro, regarder le code généré et l'adapter avec un InputBox.
KWET2501
Messages postés8Date d'inscriptionvendredi 14 septembre 2007StatutMembreDernière intervention20 septembre 2007 20 sept. 2007 à 11:58
bonjour
merci pour ton aide je comprend deja la facon de faire!
je viens d'essayer ta facon de voir mais il dois y avoir un problème à partir de la boucle car ça me génére un code 9
je retrouve le résultat que j'avais auparavant.
je regarderais un peu plus un détail cet aprem et te dirais quoi!
merci de ton aide Kwet
Vous n’avez pas trouvé la réponse que vous recherchez ?