Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Suppression de lignes vides dans un projet Ms project 2003

7 réponses
Avatar
nhawks
Bonjour,

J'aurai besoin de supprimer en automatique des lignes vides de mes fichiers project. Mes utilisateurs "polluent" leurs fichiers de lignes vides et pour automatiser mes reporting en aval de ces fichiers, il faut que je les supprime.

Auriez-vous un code VB simple afin de les supprimer.

Par avance merci de vos idées.
Christophe

7 réponses

Avatar
Gérard Ducouret
Essayez ceci :

Sub DelLignevide()
Dim oTache As Task
Dim RowNbr As Integer, i As Integer

For Each oTache In ActiveProject.Tasks
i = i + 1
If oTache Is Nothing Then
SelectRow Row:=RowNbr + 1, RowRelative:lse
EditDelete
GoTo skip
End If
RowNbr = oTache.ID
skip:
Next oTache

End Sub

Cordialement

Gérard
Avatar
nhawks
Gérard Ducouret a écrit le 07/01/2010 à 15h08 :
Essayez ceci :

Sub DelLignevide()
Dim oTache As Task
Dim RowNbr As Integer, i As Integer

For Each oTache In ActiveProject.Tasks
i = i + 1
If oTache Is Nothing Then
SelectRow Row:=RowNbr + 1, RowRelative:lse
EditDelete
GoTo skip
End If
RowNbr = oTache.ID
skip:
Next oTache

End Sub

Cordialement

Gérard


Merci Gérard pour votre réponse.

Cependant lorsque j'applique ce code dans mon fichier, celà détruit TOUTES les lignes y compris les remplies !

Exemple de fichier :
Ligne 1 : Tache 1 durée 3 j
Ligne 2 : rien (ligne vide)
Ligne 3 : Tache 2 durée 3 s

Je ne voudrais qu'une suppression de la ligne 2.
A savoir que mes collègues me transmette une dizaine de fichiers possèdant plusieurs milliers de lignes par fichier. Donc très long et fastidueux à faire à la main.

A vos relire

Christophe
Avatar
Gérard Ducouret
On 7 jan, 16:20, nhawks wrote:
Gérard Ducouret a écrit le 07/01/2010 à 15h08 :



> Essayez ceci :

> Sub DelLignevide()
> Dim oTache As Task
> Dim RowNbr As Integer, i As Integer

> For Each oTache In ActiveProject.Tasks
> i = i + 1
> If oTache Is Nothing Then
> SelectRow Row:=RowNbr + 1, RowRelative:lse
> EditDelete
> GoTo skip
> End If
> RowNbr = oTache.ID
> skip:
> Next oTache

> End Sub

> Cordialement

> Gérard

Merci Gérard pour votre réponse.

Cependant lorsque j'applique ce code dans mon fichier, celà détruit T OUTES les
lignes y compris les remplies !

Exemple de fichier :
Ligne 1 : Tache 1 durée 3 j
Ligne 2 : rien (ligne vide)
Ligne 3 : Tache 2 durée 3 s

Je ne voudrais qu'une suppression de la ligne 2.
A savoir que mes collègues me transmette une dizaine de fichiers poss èdant
plusieurs milliers de lignes par fichier. Donc très long et fastidueux à faire à
la main.

A vos relire

Christophe- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Bonjour Christophe,

J'ai testé cette procédure VBA sur un petit projet de 30 lignes où
j'avais inséré 4 lignes vides, elle a bien fonctionné...
Pourriez-vous me faire parvenir votre fichier test ?
Cordialement,

Gérard Ducouret
PragmaSoft ®
Avatar
nhawks
Gérard Ducouret a écrit le 08/01/2010 à 14h11 :
On 7 jan, 16:20, nhawks wrote:
Gérard Ducouret a écrit le 07/01/2010 à 15h08 :



> Essayez ceci :

> Sub DelLignevide()
> Dim oTache As Task
> Dim RowNbr As Integer, i As Integer

> For Each oTache In ActiveProject.Tasks
> i = i + 1
> If oTache Is Nothing Then
> SelectRow Row:=RowNbr + 1, RowRelative:lse
> EditDelete
> GoTo skip
> End If
> RowNbr = oTache.ID
> skip:
> Next oTache

> End Sub

> Cordialement

> Gérard

Merci Gérard pour votre réponse.

Cependant lorsque j'applique ce code dans mon fichier, celà
détruit T OUTES les
lignes y compris les remplies !

Exemple de fichier :
Ligne 1 : Tache 1 durée 3 j
Ligne 2 : rien (ligne vide)
Ligne 3 : Tache 2 durée 3 s

Je ne voudrais qu'une suppression de la ligne 2.
A savoir que mes collègues me transmette une dizaine de fichiers poss
èdant
plusieurs milliers de lignes par fichier. Donc très long et fastidueux
à faire à
la main.

A vos relire

Christophe- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -




Bonjour Christophe,

J'ai testé cette procédure VBA sur un petit projet de 30 lignes

j'avais inséré 4 lignes vides, elle a bien fonctionné...
Pourriez-vous me faire parvenir votre fichier test ?
Cordialement,

Gérard Ducouret
PragmaSoft ®


Merci gérard. Quel Email puis-je utiliser pour vous envoyer mon petit fichier de test ?

Cordialement
Christophe
Avatar
Gérard Ducouret
On 8 jan, 14:53, nhawks wrote:
G rard Ducouret a crit le 08/01/2010 14h11 :



> On 7 jan, 16:20, nhawks  wrote:
>> G rard Ducouret a crit le 07/01/2010 15h08 :

>> > Essayez ceci :

>> > Sub DelLignevide()
>> > Dim oTache As Task
>> > Dim RowNbr As Integer, i As Integer

>> > For Each oTache In ActiveProject.Tasks
>> > i = i + 1
>> > If oTache Is Nothing Then
>> > SelectRow Row:=RowNbr + 1, RowRelative:lse
>> > EditDelete
>> > GoTo skip
>> > End If
>> > RowNbr = oTache.ID
>> > skip:
>> > Next oTache

>> > End Sub

>> > Cordialement

>> > G rard

>> Merci G rard pour votre r ponse.

>> Cependant lorsque j'applique ce code dans mon fichier, cel
>> d truit T OUTES les
>> lignes y compris les remplies !

>> Exemple de fichier :
>> Ligne 1 : Tache 1 dur e 3 j
>> Ligne 2 : rien (ligne vide)
>> Ligne 3 : Tache 2 dur e 3 s

>> Je ne voudrais qu'une suppression de la ligne 2.
>> A savoir que mes coll gues me transmette une dizaine de fichiers poss
>> dant
>> plusieurs milliers de lignes par fichier. Donc tr s long et fastidueux
>> faire
>> la main.

>> A vos relire

>> Christophe- Masquer le texte des messages pr c dents -

>> - Afficher le texte des messages pr c dents -

> Bonjour Christophe,

> J'ai test cette proc dure VBA sur un petit projet de 30 lignes
> o
> j'avais ins r 4 lignes vides, elle a bien fonctionn ...
> Pourriez-vous me faire parvenir votre fichier test ?
> Cordialement,

> G rard Ducouret
> PragmaSoft

Merci g rard. Quel Email puis-je utiliser pour vous envoyer mon petit fic hier
de test ?

Cordialement
Christophe- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Celle-ci:

en enlevant ce qu'il faut.
cordialement,

Gérard Ducouret
Avatar
nhawks
Gérard Ducouret a écrit le 08/01/2010 à 16h03 :
On 8 jan, 14:53, nhawks wrote:
G rard Ducouret a crit le 08/01/2010 14h11 :



> On 7 jan, 16:20, nhawks  wrote:
>> G rard Ducouret a crit le 07/01/2010 15h08 :

>> > Essayez ceci :

>> > Sub DelLignevide()
>> > Dim oTache As Task
>> > Dim RowNbr As Integer, i As Integer

>> > For Each oTache In ActiveProject.Tasks
>> > i = i + 1
>> > If oTache Is Nothing Then
>> > SelectRow Row:=RowNbr + 1, RowRelative:lse
>> > EditDelete
>> > GoTo skip
>> > End If
>> > RowNbr = oTache.ID
>> > skip:
>> > Next oTache

>> > End Sub

>> > Cordialement

>> > G rard

>> Merci G rard pour votre r ponse.

>> Cependant lorsque j'applique ce code dans mon fichier, cel
>> d truit T OUTES les
>> lignes y compris les remplies !

>> Exemple de fichier :
>> Ligne 1 : Tache 1 dur e 3 j
>> Ligne 2 : rien (ligne vide)
>> Ligne 3 : Tache 2 dur e 3 s

>> Je ne voudrais qu'une suppression de la ligne 2.
>> A savoir que mes coll gues me transmette une dizaine de fichiers poss
>> dant
>> plusieurs milliers de lignes par fichier. Donc tr s long et
fastidueux
>> faire
>> la main.

>> A vos relire

>> Christophe- Masquer le texte des messages pr c dents -

>> - Afficher le texte des messages pr c dents -

> Bonjour Christophe,

> J'ai test cette proc dure VBA sur un petit projet de 30 lignes
> o
> j'avais ins r 4 lignes vides, elle a bien fonctionn ...
> Pourriez-vous me faire parvenir votre fichier test ?
> Cordialement,

> G rard Ducouret
> PragmaSoft

Merci g rard. Quel Email puis-je utiliser pour vous envoyer mon petit fic hier
de test ?

Cordialement
Christophe- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -




Celle-ci:

en enlevant ce qu'il faut.
cordialement,

Gérard Ducouret


Merci Gérard.

N'arrivant pas àtrouver votre mail, voici le mien

ch (underscore) bretonneau (AT) yahoo (point) fr

Par avance merci bcp

Christophe
Avatar
nhawks
nhawks a écrit le 07/01/2010 à 09h10 :
Bonjour,

J'aurai besoin de supprimer en automatique des lignes vides de mes fichiers
project. Mes utilisateurs "polluent" leurs fichiers de lignes vides
et pour automatiser mes reporting en aval de ces fichiers, il faut que je les
supprime.

Auriez-vous un code VB simple afin de les supprimer.

Par avance merci de vos idées.
Christophe


Merci Gérard

Oui cette fois le code fonctionne parfaitement avec l'argument FALSE de Rowrelative.

Merci encore infiniment pour le temps passé à la résolution de ce pb.

Christophe

*************************
Sub DelLignevide()
Dim oTache As Task
Dim RowNbr As Integer, i As Integer


For Each oTache In ActiveProject.Tasks
i = i + 1
If oTache Is Nothing Then
SelectRow Row:=RowNbr + 1, RowRelative:lse
EditDelete
GoTo skip
End If
RowNbr = oTache.ID
skip:
Next oTache
End Sub
*************************