> Tous les forums > Forum Bureautique
 Excel 2003 : macro pour supprimer une ligneSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
Rainier
  Posté le 13/10/2008 @ 16:50 
Aller en bas de la page 
Petit astucien

Bonjour

Ma macro doit, à un moment donné, supprimer une ligne dont la valeur d'une cellule est "(vide)"

pour cela je lance l'enregistrement automatique de macro, puis je fais un filtre en ne selectionnant que les lignes ayant la valeur "(vide)" et je les supprime.

mais le code VB donne cela :

Columns("A:A").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="(vide)"
Rows("358:358").Select
Selection.Delete Shift:=xlUp

ce qui fait que je vais toujours supprimer la ligne 358 ...que la valeur soit "(vide)" ou non !

Comment faire pour que cette valeur soit variable ?

Merci d'avance

David

PS je débute dans les macros, alors soyez indulgents ...

Publicité
g
 Posté le 13/10/2008 à 17:17 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour,

Avec ce code tu supprimes toutes les rangées vides d'une feuille:

Sub SupRanVid()
With ActiveSheet.UsedRange
derLi = .Row + .Rows.Count - 1
End With
Application.ScreenUpdating = False
For r = derLi To 1 Step -1
If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete
Next r
End Sub

A copier dans un module standard.

Bonne soirée.

Rainier
 Posté le 14/10/2008 à 12:11 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci beaucoup g

il y a une erreur de compilation "End Sub attendu"

comme le end Sub est bien présent dans ton code, je pense qu'il doit y avoir une autre boucle mal terminée qq part.

de plus, il ne faut pas definir "derli" ?

Merci

Bérylion
 Posté le 14/10/2008 à 12:42 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Rainier a écrit :

Merci beaucoup g

il y a une erreur de compilation "End Sub attendu"

comme le end Sub est bien présent dans ton code, je pense qu'il doit y avoir une autre boucle mal terminée qq part.

de plus, il ne faut pas definir "derli" ?

Merci

Salut

nan, le code est nickel, vérifie ton module entier (t'as ptet fait un copier/coller de trop)

la déclaration des variables n'est obligatoire que si tu le spécifies en début de module ("Option Explicit")

sinon, c'est conseillé pour éviter les erreurs, mais pas forcément obligatoire.

Rainier
 Posté le 14/10/2008 à 14:48 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Effectivement si je crée une macro uniquement avec ce code ça marche bien

mais dans mon cas j'ai une erreur de compile car c'est déjà à l'intérieur d'une sub - end sub

Sub Macro-principale

.../...

Sub SupRanVid()
With ActiveSheet.UsedRange
derLi = .Row + .Rows.Count - 1
End With
Application.ScreenUpdating = False
For r = derLi To 1 Step -1
If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete
Next r
End Sub

.../...

End Sub

==> erreur de compil "End Sub attendu"

Maintenant si j'enléve le Sub SupRanVid() / End Sub pour uniquement inserér le code à l'interieur :

Sub Macro-principale

.../...

With ActiveSheet.UsedRange
derLi = .Row + .Rows.Count - 1
End With
Application.ScreenUpdating = False
For r = derLi To 1 Step -1
If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete
Next r


.../...

End Sub

==> Erreur de compilation Projet ou bibliotheque introuvable

avec derli surligné !!!!

Bérylion
 Posté le 14/10/2008 à 15:40 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Rainier a écrit :

Effectivement si je crée une macro uniquement avec ce code ça marche bien

mais dans mon cas j'ai une erreur de compile car c'est déjà à l'intérieur d'une sub - end sub

Sub Macro-principale

.../...

Sub SupRanVid()
With ActiveSheet.UsedRange
derLi = .Row + .Rows.Count - 1
End With
Application.ScreenUpdating = False
For r = derLi To 1 Step -1
If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete
Next r
End Sub

.../...

End Sub

==> erreur de compil "End Sub attendu"

Maintenant si j'enléve le Sub SupRanVid() / End Sub pour uniquement inserér le code à l'interieur :

Sub Macro-principale

.../...

With ActiveSheet.UsedRange
dim derLi%
derLi = .Row + .Rows.Count - 1
End With
Application.ScreenUpdating = False
For r = derLi To 1 Step -1
If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete
Next r
Application.ScreenUpdating = False


.../...

End Sub

==> Erreur de compilation Projet ou bibliotheque introuvable

avec derli surligné !!!!

re-

à tout hasard, rajoute les lignes en bleu...

Rainier
 Posté le 14/10/2008 à 17:39 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci Berylion !

j'ai aussi rajouté

dim r%

...et ça marche !

(peut être lié à mon ancienne version Excel 2003)

Merci g et Berylion !!

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
51,19 €Barre de son bluetooth Philips TAB5105 à 51,19 €
Valable jusqu'au 05 Mars

Cdiscount fait une promotion sur la barre de son bluetooth Philips TAB5105 qui passe à 51,19 € alors qu'on la trouve ailleurs à partir de 80 €. Cette barre de son intègre 2 haut-parleurs 2x15W et peut lire vos musiques sans fil via Bluetooth. Une entrée audio jack 3.5 mm et optique TOSLINK sont également présentes. Compatible HDMI ARC, vous pourrez contrôler la barre de son à l'aide de la télécommande de votre téléviseur. Elle est suffisamment fine pour se glisser sous la plupart des téléviseurs. Vous pouvez également la fixer au mur à l'aide des supports intégrés.


> Voir l'offre
799,90 €Ultrabook HONOR MagicBook Pro 16.1 (Core i5-10210U, 16Go, 512 Go SSD, GeForce 350MX) à 799,90 €
Valable jusqu'au 07 Mars

HONOR fait une promotion sur son ultrabook HONOR MagicBook Pro 16.1 qui passe à 799,90 € au lieu de 999 € grâce un coupon de réduction à activer sur la page du produit. Cet ordinateur portable possède un écran 16.1 pouces Full HD IPS 100% sRGB, un processeur Intel Core i5-10210U à 4 coeurs, une carte graphique GeForce MX350, 16 Go de mémoire DDR4, un SSD 512 Go PCIe NVME, le WiFi5 / Bluetooth 5.0, un lecteur d'empreintes, une webcam, un clavier rétro éclairé, une batterie 56 Wh (jusqu'à 11h d'autonomie et recharge rapide) et ne pèse que 1,7 kg. Il fonctionne sous Windows 10. Une très bonne affaire pour une machine compacte et puissante.

Vous pourrez également choisir un lot de 2 ou 3 cadeaux gratuits parmi une sélection (souris, casque bluetooth, écouteurs, haut-parleur, tracker d'activité, ...). La livraison est également gratuite.


> Voir l'offre
1099,99 €Acer Nitro 5 (17,3'' FHD 144Hz, Core i5 10300, 16Go, SSD 512Go, RTX 3060 6 Go) à 1099,99 € (via ODR)
Valable jusqu'au 07 Mars

Cdiscount fait une belle vente flash sur l'ordinateur portable Acer Aspire Nitro AN517-52-505S qui passe à 1199,99 €. Or Acer rembourse actuellement 100 € pour l'achat de ce portable qui vous reviendra à 1099,99 € après remboursement.

Ce portable dédié aux joueurs dispose d'un écran 17,3 pouces FHD 1920 x 1080 IPS 144 Hz, d'un processeur Intel Core i5 10300H, de 16 Go de mémoire RAM, d'un SSD de 512 Go et surtout d'une carte graphique Nvidia GeForce RTX 3060 avec 6 Go de mémoire qui vous permettra de profiter de vos jeux de manière fluide en haute résolution. Le tout tourne sous Windows 10. Une souris vous est également offerte.


> Voir l'offre

Sujets relatifs
Creation d' une boucle macro dans fichier EXCEL pour impression
Excel 2003, insertion ligne vierge
Macro pour ouverture d'un fichier Excel
Macro pour créer un Gencode sur Excel - EAN 18
Amélioration d'une macro sous excel 97 ou 2003
Macro supprimer ligne avec condition
Macro pour un envoi feuille excel par mail
Macro excel pour enregistrer
supprimer des lignes dans fichier excel 2003
macro excel pour convertir données
Plus de sujets relatifs à Excel 2003 : macro pour supprimer une ligne
 > Tous les forums > Forum Bureautique