[VBA Excel 2003] Dernières feuilles
Résolu/Fermé
nightsheart
Messages postés
319
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
1 juin 2018
-
28 juil. 2011 à 08:59
nightsheart Messages postés 319 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 1 juin 2018 - 28 juil. 2011 à 13:50
nightsheart Messages postés 319 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 1 juin 2018 - 28 juil. 2011 à 13:50
A voir également:
- [VBA Excel 2003] Dernières feuilles
- Liste déroulante excel - Guide
- Formule excel - Guide
- Fusionner feuilles excel - Guide
- Si et excel - Guide
- Feuille de pointage excel - Télécharger - Tableur
7 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 741
28 juil. 2011 à 09:08
28 juil. 2011 à 09:08
Salut,
Peut être en considérant l'ordre des feuilles grâce à leur indice, comme ceci :
Et évite les goto inutiles!!
Testes et dis...
Peut être en considérant l'ordre des feuilles grâce à leur indice, comme ceci :
Et évite les goto inutiles!!
Dim IndFeuil As Integer For IndFeuil = ThisWorkbook.Worksheets.Count To (ThisWorkbook.Worksheets.Count - 50) Step -1 If Sheets(IndFeuil).Name <> "Extraction" And Sheets(IndFeuil).Name <> "Data" Sheets(IndFeuil).Name <> "Graphiques" Then With Sheets(IndFeuil) 'bla bla bla 'le reste de ton code ici End If Next
Testes et dis...
nightsheart
Messages postés
319
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
1 juin 2018
30
28 juil. 2011 à 09:31
28 juil. 2011 à 09:31
Je n'arrive pas à faire fonctionner ton bout de code avec le mien.
A vrai dire je ne sais pas trop quoi remplacer dans le mien et tout.
A vrai dire je ne sais pas trop quoi remplacer dans le mien et tout.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 741
28 juil. 2011 à 09:41
28 juil. 2011 à 09:41
Voici ton code adapté :
J'ai commenté.
J'avais oublié un "AND" dans mon test précédent et donc ça ne pouvait pas fonctionner...
Sub recherche() Dim x As Range, l As Integer, c As Integer, i As Integer, IndFeuil As Integer Dim PremFeuil As Integer, DernFeuil As Integer Dim maref As String 'Numéro d'indice de la première feuille à traiter 'ici : dernière feuille du classeur PremFeuil = ThisWorkbook.Worksheets.Count 'Numéro d'indice de la dernière feuille à traiter 'ici : dernière feuille du classeur - 50 DernFeuil = PremFeuil - 50 'ce code ne change pas, il est de toi... Worksheets("Extraction").Range("C6:G200").ClearContents maref = ThisWorkbook.Worksheets("Extraction").Range("C2") i = 4 'On va boucler sur les indices de feuilles, de la dernière à la 50ème pénultième For IndFeuil = PremFeuil To DernFeuil Step -1 'test sur le nom de la feuille, s'il est différent de Extraction, Data ou graphiques alors....... If Sheets(IndFeuil).Name <> "Extraction" And Sheets(IndFeuil).Name <> "Data" And Sheets(IndFeuil).Name <> "Graphiques" Then 'on traite la-dite feuille avec ton code With Sheets(IndFeuil).Cells Set x = .Find(maref, , xlValues, xlWhole) End With If Not x Is Nothing Then l = x.Row c = x.Column With Worksheets("Extraction") i = i + 1 .Cells(i, 3) = wsk.Name .Cells(i, 4) = wsk.Cells(l, c + 3) End With End If End If Next End Sub
J'ai commenté.
J'avais oublié un "AND" dans mon test précédent et donc ça ne pouvait pas fonctionner...
nightsheart
Messages postés
319
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
1 juin 2018
30
28 juil. 2011 à 09:46
28 juil. 2011 à 09:46
Je crois y être arrivé.
Voici mon code :
MERCI
Voici mon code :
Sub recherche() Dim nbVal As Long Dim x As Range, l As Integer, c As Integer, maref As String, i As Integer Dim IndFeuil As Integer Worksheets("Extraction").Range("C6:G200").ClearContents maref = ThisWorkbook.Worksheets("Extraction").Range("C2") i = 4 For IndFeuil = ThisWorkbook.Worksheets.Count To (ThisWorkbook.Worksheets.Count - 50) Step -1 If Sheets(IndFeuil).Name <> "Extraction" And Sheets(IndFeuil).Name <> "Data" And Sheets(IndFeuil).Name <> "Graphiques" Then With Sheets(IndFeuil).Cells Set x = .Find(maref, , xlValues, xlWhole) End With If Not x Is Nothing Then l = x.Row c = x.Column With Worksheets("Extraction") i = i + 1 .Cells(i, 3) = Sheets(IndFeuil).Name .Cells(i, 4) = Sheets(IndFeuil).Cells(l, c + 3) End With End If End If Next End Sub
MERCI
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 741
Modifié par pijaku le 28/07/2011 à 09:48
Modifié par pijaku le 28/07/2011 à 09:48
Ben oui bravo!
A+ et de rien!
A+ et de rien!
nightsheart
Messages postés
319
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
1 juin 2018
30
Modifié par nightsheart le 28/07/2011 à 11:11
Modifié par nightsheart le 28/07/2011 à 11:11
Merci encore,
J'aurais juste une petite question supplémentaire.
J'ai créé un graphique sur cette feuille "Extraction".
Je voudrais que mon titre de graphique prenne la valeur de la cellule C2 juste après la recherche donc juste après l'éxécution du code précédent.
Comment dois-je procéder ? Quel est le code à mettre ?
J'aurais juste une petite question supplémentaire.
J'ai créé un graphique sur cette feuille "Extraction".
Je voudrais que mon titre de graphique prenne la valeur de la cellule C2 juste après la recherche donc juste après l'éxécution du code précédent.
Comment dois-je procéder ? Quel est le code à mettre ?
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 741
Modifié par pijaku le 28/07/2011 à 11:13
Modifié par pijaku le 28/07/2011 à 11:13
J'ai créé un graphique sur cette feuille "Extraction". Par macro?
Si oui donne le code...
Si non, si c'est manouel, tu peux le mettre tout seul non?
Ps : j'y connais pas grand chose en graph, mais n'hésite pas, je chercherais...
Si oui donne le code...
Si non, si c'est manouel, tu peux le mettre tout seul non?
Ps : j'y connais pas grand chose en graph, mais n'hésite pas, je chercherais...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
nightsheart
Messages postés
319
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
1 juin 2018
30
28 juil. 2011 à 11:17
28 juil. 2011 à 11:17
Le graphique est créé manuellement mais je voudrais juste que le titre change avec la valeur de la cellule C2 après la recherche.
J'ai réussi avec une formule. Le titre se change mais avant la recherche. Dès que j'entre la nouvelle donnée dans la cellule C2 le titre se modifie alors que le graphique n'est pas à jour avec les nouveaux paramètres.
J'ai réussi avec une formule. Le titre se change mais avant la recherche. Dès que j'entre la nouvelle donnée dans la cellule C2 le titre se modifie alors que le graphique n'est pas à jour avec les nouveaux paramètres.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 741
28 juil. 2011 à 11:52
28 juil. 2011 à 11:52
Le plus simple serait de connaitre le "nom" de ton graph.
Mais, sans le connaître, s'il n'y en a qu'un dans ta feuille extraction, tu peux faire comme ceci à ajouter à la fin de ta macro :
Mais, sans le connaître, s'il n'y en a qu'un dans ta feuille extraction, tu peux faire comme ceci à ajouter à la fin de ta macro :
Dim Titre As String Dim Obj As Object Titre = Range("C2") For Each Obj In Sheets("Extraction").ChartObjects If Left(Obj.Name, 5) = "Chart" Then Obj.Activate Exit For End If Next With ActiveChart .ChartTitle.Characters.Text = Titre End With
nightsheart
Messages postés
319
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
1 juin 2018
30
28 juil. 2011 à 11:38
28 juil. 2011 à 11:38
J'ai trouvé ca y'est ^^
Sub Macro 2() Application.Run "Fichier!recherche" 'Lance la macro recherche' ActiveSheet.ChartObjects("Nom du graph").Activate ActiveChart.ChartArea.Select With ActiveChart .HasTitle = True .ChartTitle.Characters.Text = Range("C2") End With End Sub
nightsheart
Messages postés
319
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
1 juin 2018
30
Modifié par nightsheart le 28/07/2011 à 13:07
Modifié par nightsheart le 28/07/2011 à 13:07
Du coup maintenant j'ai encore un autre truc à faire.
J'ai chercher un peu partout mais je trouve pas.
En fait je voudrais que certains points de ma courbe soit en rouge.
Ces points correspondraient aux données en rouge et en gras dans la colonne utilisé pour la courbe.
Bien entendu ces données en rouge et gras ne sont pas toujours les mêmes points. Ceux-ci difère en fonction de ma recherche.
Une idée grand pijaku (ou quelqu'un d'autre) ?? :)
J'ai chercher un peu partout mais je trouve pas.
En fait je voudrais que certains points de ma courbe soit en rouge.
Ces points correspondraient aux données en rouge et en gras dans la colonne utilisé pour la courbe.
Bien entendu ces données en rouge et gras ne sont pas toujours les mêmes points. Ceux-ci difère en fonction de ma recherche.
Une idée grand pijaku (ou quelqu'un d'autre) ?? :)
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 741
28 juil. 2011 à 13:12
28 juil. 2011 à 13:12
Je veux bien continuer, mais j'ai besoin d'infos...
Peux tu faire une copie de ta feuille Extraction (clic droit sur l'onglet de la feuille/Déplacer ou copier, cocher "créer une copie", dans le classeur : nouveau classeur) tu enregistres ce nouveau classeur, en remplacant les données confidentielles par de simples noms. enregistre au format Excel 97-2003, .xls. Ensuite tu nous le transmet en utilisant un service de pièce jointe comme cjoint.com ou cijoint.fr.
Peux tu faire une copie de ta feuille Extraction (clic droit sur l'onglet de la feuille/Déplacer ou copier, cocher "créer une copie", dans le classeur : nouveau classeur) tu enregistres ce nouveau classeur, en remplacant les données confidentielles par de simples noms. enregistre au format Excel 97-2003, .xls. Ensuite tu nous le transmet en utilisant un service de pièce jointe comme cjoint.com ou cijoint.fr.
nightsheart
Messages postés
319
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
1 juin 2018
30
28 juil. 2011 à 13:14
28 juil. 2011 à 13:14
Ok je vais faire ceci. Ca risque d'être un peu long.
merci pour tout.
merci pour tout.
nightsheart
Messages postés
319
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
1 juin 2018
30
28 juil. 2011 à 13:28
28 juil. 2011 à 13:28
Voila ;
http://www.cijoint.fr/cjlink.php?file=cj201107/cijian8nYJ.xls
http://www.cijoint.fr/cjlink.php?file=cj201107/cijian8nYJ.xls
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 741
28 juil. 2011 à 13:35
28 juil. 2011 à 13:35
Désolé. Je ne sais pas si ce que tu demandes est réalisable...
A mon avis, tu devrais ouvrir un nouveau sujet; celui ci est résolu et la nouvelle question n'a rien à voir.
Sorry
A mon avis, tu devrais ouvrir un nouveau sujet; celui ci est résolu et la nouvelle question n'a rien à voir.
Sorry
nightsheart
Messages postés
319
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
1 juin 2018
30
28 juil. 2011 à 13:50
28 juil. 2011 à 13:50
Pas de soucis. Merci pour tout.