8 utilisateurs inconnus

 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet :

VBA avec MS Project 2003

 
n°49293
Boby71C
Posté le 26-09-2006 à 08:10:03  profilanswer
 

Bonjour à tous
Je suis nouveau sur le forum et veuillez m'escuser à l'avance si je fais erreur en posant ma question ici, le souci est que je ne trouve pas de forums dédiés à MSP sauf celui de Windows.
Je suis débutant en développement VBA sous Excel et celui de MSP est un petit peux différent.
Mon souci est le suivant:
 
J'ai un planing avec différents types de produits.
je désir extraire les données de chaque produit pour établir mes graphiques de charges dans Ecel.
Jusqu'à maintenant, je le faisais manuellement et je désir automatiser.
 
dans ma macro, je descend à la ligne 25000 pour ensuite remonter automatiquement à la dernière ligne de saisie à l'écran.
Le code est le suivant:
 
Sub Graphiques()
' Macro Graphiques
' Macro enregistrée le 21/09/2006 par philippe.robert.
'=================================================================================
'Sauvegarde le fichier sous le même nom mais dans un autre répèrtoire pour ne pa véroller l'original.
     
    FileSaveAs Name:="D:\Sauvegardes 2006\SauveEBT2.3\EBT2.3.mpp", FormatID:="MSProject.MPP"
     
'=================================================================================
'Sauvegarde sous le nom EBT2.3ProjetsOuvertsGalaxis
     
    FileSaveAs Name:="D:\Sauvegardes 2006\GraphiquesCharges\EBT2.3ProjetsOuvertsGALAXIS.mpp", FormatID:="MSProject.MPP"
     
'=================================================================================
' Mettre en affichage niveau 1
     
    OutlineShowTasks OutlineNumber:=pjTaskOutlineShowLevel1
 
'=================================================================================
' Supprimer le fractionnement
    WindowSplit
     
'=================================================================================
' Filtrer les Projets modèles et les supprimer.
 
    FilterEdit Name:="FiltreModèles", TaskFilter:=True, Create:=True, OverwriteExisting:=True, FieldName:="Texte7", Test:="Égal à", Value:="M", ShowInMenu:=False, ShowSummaryTasks:=False
    FilterApply Name:="FiltreModèles"
    EditGoTo ID:=25000
    SelectRange Row:=-17728, Column:=2
     
    SelectRange Row:=0, Column:=2, Height:=18, Extend:=True
    EditDelete
   
' Afficher les Projets restants.
 
    FilterApply Name:="&Toutes les tâches"
     
'=================================================================================
etc..
Je remonte de 17728 lignes et je selectionne 18 lignes à supprimer
mais ça n'est pas systématiquement une remontée de 17728 lignes
et il ne reste pas toujour 18 lignes à supprimer.
 
Avez vous une idée du code à modifier ?
Votre aide me serait d'un grand secours
 
Merci à vous
@+ Robert

n°49294
virus2013
@}oo{=======>
Posté le 26-09-2006 à 08:18:33  profilanswer
 

Et que veux-tu exactement ? Que le programme détermine ces deux valeurs automatiquement ou bien que tu lui entres manuellement ?


---------------
L'informatique, c'est comme les femmes. On adore, mais on ne comprend jamais vraiment !
n°49295
LostSoul
Manieur de hache
Posté le 26-09-2006 à 08:21:39  profilanswer
 

Essaye d'écrire ce que tu veux faire en français correct de manière claire comme ca on pourra ptet pondre un algo valable

n°49296
virus2013
@}oo{=======>
Posté le 26-09-2006 à 08:23:14  profilanswer
 

ouais enfin vous pourrez lui pondre hein ! Parce que moi... :lol:


---------------
L'informatique, c'est comme les femmes. On adore, mais on ne comprend jamais vraiment !
n°49297
Boby71C
Posté le 26-09-2006 à 08:32:21  profilanswer
 

Bonjour à tous
Merci pour votre aide
je désir que le programme détermine ces deux valeurs automatiquement.
il s'agit de ces 2 lignes qui me posent problême:
 
Pour celle ci-dessous, je remonte de 17728 lignes et je voudrais remonter automatiquement à la dernière ligne saisie
 SelectRange Row:=-17728, Column:=2  
 
 Pour celle ci-dessous, je selectionne 18 lignes et je voudrais selectionner automatiquement la totalité des lignes présentes à l'écran ( valeur qui n'est jamais identique)  pour pouvoir les supprimer  
SelectRange Row:=0, Column:=2, Height:=18, Extend:=True  
 
Merci pour votre aide
@+ Robert

n°49298
Twan
Posté le 26-09-2006 à 09:03:52  profilanswer
 

Boby71C a écrit :

Bonjour à tous
Merci pour votre aide
je désir que le programme détermine ces deux valeurs automatiquement.
il s'agit de ces 2 lignes qui me posent problême:
 
Pour celle ci-dessous, je remonte de 17728 lignes et je voudrais remonter automatiquement à la dernière ligne saisie
SelectRange Row:=-17728, Column:=2  
 
 Pour celle ci-dessous, je selectionne 18 lignes et je voudrais selectionner automatiquement la totalité des lignes présentes à l'écran ( valeur qui n'est jamais identique)  pour pouvoir les supprimer  
SelectRange Row:=0, Column:=2, Height:=18, Extend:=True  
 
Merci pour votre aide
@+ Robert


En gros tu voudrai calculer le 17728 et le 18 ?


Message édité par Twan le 26-09-2006 à 09:04:09
n°49302
LostSoul
Manieur de hache
Posté le 26-09-2006 à 09:16:45  profilanswer
 

Pourquoi ne pas mettre des "labels" dans certaines cellules genre un texte style "DEBUT" et "FIN" et te baser là dessus, simplement en recherchant l'index des cellules qui les contiennent ?

n°49303
castor@mat​be
Mutafukaz !
Posté le 26-09-2006 à 10:50:24  profilanswer
 

En gros nous donne zéro info interressantes pour imaginer un algo.
 
Si tu souhaites supprimer tous les projets modèles vu que tu filtres "texte7" sur la Valeur "M" tu t'en branles de savoir où ça commence et où ça fini :spamafote:
 
Tu peux barbariser en supprimant d'office 3000 lignes...


---------------
Blog
n°49305
Boby71C
Posté le 26-09-2006 à 13:40:00  profilanswer
 

Excusez moi de ne pas être suffisement précis dans ma demande.
 
Je suis débutant de chez débutant en VBA  :jap:  :jap:  
 
Que veux tu dire castor@matbe par:
 
Tu peux barbariser en supprimant d'office 3000 lignes...  
 
Pourrais-tu m'indiquer le code à supprimer dans le mien et par quoi le remplacer s'il te plais ?
 
Merci à tous de vous interresser à mon sujet.
@+ Robert

n°49312
Boby71C
Posté le 26-09-2006 à 15:19:34  profilanswer
 

Re
Ne cherchez plus les amis
J'ai réussis à me débrouiller seul.
 
Voici mon code:
 
Sub GraphiquesGalOuv()
' Macro Graphiques
' Macro enregistrée le 21/09/2006 par philippe.robert.
'================================================================================================
'Sauvegarde le fichier sous le même nom mais dans un autre répèrtoire pour ne pa véroller l'original.
     
    FileSaveAs Name:="D:\Sauvegardes 2006\SauveEBT2.3\EBT2.3.mpp", FormatID:="MSProject.MPP"
     
'================================================================================================
'Sauvegarde sous le nom EBT2.3ProjetsOuvertsGalaxis
     
    FileSaveAs Name:="D:\Sauvegardes 2006\GraphiquesCharges\EBT2.3ProjetsOuvertsGALAXIS.mpp", FormatID:="MSProject.MPP"
     
'================================================================================================
' Supprimer le fractionnement
    WindowSplit
     
'================================================================================================
' Filtrer les Projets modèles et les supprimer.
 
    FilterEdit Name:="FiltreModèles", TaskFilter:=True, Create:=True, OverwriteExisting:=True, FieldName:="Texte7", Test:="Égal à", Value:="M", ShowInMenu:=False, ShowSummaryTasks:=False
    FilterApply Name:="FiltreModèles"
    SelectRange Row:=0, Column:=2, Height:=12000, Extend:=True
    EditDelete
   
' Afficher les Projets restants.
 
    FilterApply Name:="&Toutes les tâches"
     
'===============================================================================================
' Filtrer les Projets Enregistrés et les supprimer.
 
    FilterEdit Name:="FiltreEnregistre", TaskFilter:=True, Create:=True, OverwriteExisting:=True, FieldName:="Texte7", Test:="Égal à", Value:="E", ShowInMenu:=False, ShowSummaryTasks:=False
    FilterApply Name:="FiltreEnregistre"
    SelectRange Row:=0, Column:=2, Height:=1000, Extend:=True
    EditDelete
     
' Afficher les Projets restants.
 
    FilterApply Name:="&Toutes les tâches"
   
'===============================================================================================
' Filtrer les Projets Devis et les supprimer.
 
    FilterEdit Name:="FiltreDevis", TaskFilter:=True, Create:=True, OverwriteExisting:=True, FieldName:="Texte7", Test:="Égal à", Value:="D", ShowInMenu:=False, ShowSummaryTasks:=False
    FilterApply Name:="FiltreDevis"
    SelectRange Row:=0, Column:=2, Height:=12000, Extend:=True
    EditDelete
     
' Afficher les Projets restants.
 
    FilterApply Name:="&Toutes les tâches"
 
'================================================================================================
' Filtrer les Projets Titan et les supprimer.
    FilterEdit Name:="FiltreTitan", TaskFilter:=True, Create:=True, OverwriteExisting:=True, FieldName:="Texte27", Test:="Égal à", Value:="TitII", ShowInMenu:=False, ShowSummaryTasks:=False
    FilterApply Name:="FiltreTitan"
    SelectRange Row:=0, Column:=2, Height:=1000, Extend:=True
    EditDelete
     
' Afficher les Projets restants.
 
    FilterApply Name:="&Toutes les tâches"
     
'================================================================================================
' Filtrer les Projets Normabloc et les supprimer.
 
    FilterEdit Name:="FiltreNormabloc", TaskFilter:=True, Create:=True, OverwriteExisting:=True, FieldName:="Texte27", Test:="Égal à", Value:="Nor", ShowInMenu:=False, ShowSummaryTasks:=False
    FilterApply Name:="FiltreNormabloc"
    SelectRange Row:=0, Column:=2, Height:=12000, Extend:=True
    EditDelete
     
' Afficher les Projets restants.
 
    FilterApply Name:="&Toutes les tâches"
 
 
End Sub
 
S'il peut servire à d'autres !!
 
Je vous renouvel tout de même mes remerciements à tous pour votre patience.
@+ Robert


Aller à :
Ajouter une réponse