Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 03/02/2010, 12h03   #1
Candidat au titre de Membre du Club
 
Inscription : février 2010
Messages : 37
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 37
Points : 12
Points : 12
Par défaut Supprimer la derniere ligne sur plusieurs feuilles

Bonjour,

Je débute en progammation VBA et j'essai de programmer une interface qui me permettrais de saisir des informations dans 5 pages excel différentes, ligne par ligne.

Pour saisir pas de probleme, mais je voudrais créer un bouton me permettant d'effacer la derniere ligne de chacune de mes pages.

J'ai déjà programmé ceci mais je ne vois pas comment faire la suite :

Code :
1
2
3
4
5
6
7
8
9
Private Sub CommandButton6_Click()
Dim DernierLigne As Long
 
   Range("A1").Select
     DernierLigne = Selection.End(xlDown).Row
 
   Call Range("A" & DernierLigne).EntireRow.Delete(xlUp)
 
End Sub
Merci d'avance

Dernière modification par Domi2 ; 03/02/2010 à 12h54. Motif: ajout des balises de code (sélection du code + # au dessus de la fenêtre de rédaction du message)
goby45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2010, 13h13   #2
Membre Expert
 
Avatar de Fvandermeulen
 
Frédéric Vandermeulen
Inscription : juillet 2007
Messages : 1 716
Détails du profil
Informations personnelles :
Nom : Frédéric Vandermeulen
Âge : 36
Localisation : Belgique

Informations forums :
Inscription : juillet 2007
Messages : 1 716
Points : 2 108
Points : 2 108
Salut Goby45 et Bienvenue,

Tu n'es pas loin d'une solution, toutefois, évite les select qui ralentissent le code et qui sont la plupart du temps inutiles.

Ensuite, pour trouver la dernière ligne il vaut mieux commencer par le bas, au cas ou il y aurait une ligne vide dans ton tableau, même si ça ne devrait pas arriver chez toi.

Il te manque aussi la boucle qui va balayer toutes tes feuilles.

Et pour finir, une précision à apporter, tu veux supprimer la ligne ou l'effacer?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
Sub SuppDerLigne()
 
Dim Ws As Worksheet
Dim derLig As Long
 
For Each Ws In ThisWorkbook.Worksheets 'Boucle sur toutes les feuilles
    derLig = Ws.Cells(Columns(1).Cells.Count, 1).End(xlUp).Row 'Détermine la dernière cellule remplie de la colonne A
    Ws.Rows(derLig).Clear 'Efface les données de la dernière ligne, pour supprimer, remplace .clean par .delete
 
    'On peut aussi le faire en une ligne: Ws.Rows(Ws.Cells(Columns(1).Cells.Count, 1).End(xlUp).Row).Clear
Next Ws
End Sub
A+
__________________
N'oubliez pas le si votre problème est solutionné.
Fvandermeulen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2010, 13h16   #3
Membre éprouvé
 
Benjamin Genèze
Inscription : avril 2008
Messages : 339
Détails du profil
Informations personnelles :
Nom : Benjamin Genèze

Informations forums :
Inscription : avril 2008
Messages : 339
Points : 404
Points : 404
Dans ta procédure Command_Click

Code :
1
2
3
4
5
6
Dim tabl() As Variant, elt as Variant
tabl = Array("Feuil1", "Feuil2")
For Each elt In tabl
    Worksheets(elt).Cells(1).CurrentRegion.Rows( _
        Worksheets(elt).Cells(1).CurrentRegion.Rows.Count).Delete (xlUp)
Next elt
Benjîle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2010, 14h25   #4
Candidat au titre de Membre du Club
 
Inscription : février 2010
Messages : 37
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 37
Points : 12
Points : 12
Je voulais effacer !
Merci beaucoup cela résout mon problème
goby45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 19h26.


 
 
 
 
Partenaires

Hébergement Web