macro, syntaxe : effacer jusque la dernière cellule rensignée

  • Initiateur de la discussion Initiateur de la discussion ptite_linda
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

P

ptite_linda

Guest
Bonjour,

Je voudrai effacer les cellules à partir de la cellule A1 jusque D1 en ligne et jusque la dernière cellule renseignée en colonne. Mais je n'est pas la syntaxe exacte:

Range("A65536 : D65536").End(xlUp).Row
Selection.ClearContents

Comment je dois l'écrire?
Merci pour votre aide.
 
Dernière modification par un modérateur:
Re : macro, syntaxe : effacer jusque la dernière cellule rensignée

bonjour à tous

à essayer (pour les données en ligne)

Code:
Sub Macro1()
'
' Macro1 
' Macro enregistrée le 23/01/2008 par ...
'

'
    Range("A1:D1").Select
    Selection.ClearContents
    Range("A1").Select
End Sub
 
Re : macro, syntaxe : effacer jusque la dernière cellule rensignée

la macro n'efface que la première ligne, moi je veux effacer toutes les cellules renseignées, sachant que le nombre de lignes varient à chaque fois.
 
Dernière modification par un modérateur:
Re : macro, syntaxe : effacer jusque la dernière cellule rensignée

en attendant mieux:
Code:
Sub Macro1()
'
' Macro1
' Macro enregistrée le 23/01/2008 par ...
'

'
   [COLOR="Red"] Range("A1:D6553").Select
    Selection.ClearContents[/COLOR]
For Each c In Range("a1:a" & Range("a65536").End(xlUp).Row)
        If c = 0 Then Rows(c.Row).Delete
    Next c
End Sub
 
Re : macro, syntaxe : effacer jusque la dernière cellule rensignée

Bonjour Linda, DDP, bonjour le forum,

Tu n'as pas précisé quelle était la colonne qui recevait le plus d'information aussi la macro ci-dessous fait une petite boucle sur les colonne A, B, C et D pour définir la plus longue :

Code:
Sub Macro1()
Dim dl As Long 'déclare la variable dl
Dim max As Long 'déclare la variable max
Dim x As Byte 'déclare la variable x
For x = 1 To 4 'boucle sur les 4 colonnes
    dl = Cells(65536, x).End(xlUp).Row 'définit la variable dl
    If dl > max Then max = dl 'condition : si la dernière ligne est supérieure à max alors max devient dl
Next x 'prochaine colonne de la boucle
Range("A1:D" & max).ClearContents 'efface le contenu
End Sub

Édition :

Bonjour Romain on s'est croisé...
 
Dernière édition:
Re : macro, syntaxe : effacer jusque la dernière cellule rensignée

Romain ça fonctionne pas il reste des cellules.
ddp, il faut définir la variable?

Robert ça fonctionne, mais quand je relance la macro 2 fois de suite elle me supprime les titres, en fait ma plage de cellules à effacer commence à la ligne 2. Pourquoi?
 
Re : macro, syntaxe : effacer jusque la dernière cellule rensignée

re, salut Robert 🙂,

Comme la solution de Robert est a mon avis la plus adaptée (lui dite pas, il va pas arreter de tout la resortir apres...), voici une version remanier :
Code:
Sub Macro1()
Dim dl As Long 'déclare la variable dl
Dim max As Long 'déclare la variable max
Dim x As Byte 'déclare la variable x
For x = 1 To 4 'boucle sur les 4 colonnes
    dl = Cells(65536, x).End(xlUp).Row 'définit la variable dl
    If dl > max Then max = dl 'condition : si la dernière ligne est supérieure à max alors max devient dl
Next x 'prochaine colonne de la boucle
If max >= 2 Then Range("A2:D" & max).ClearContents 'efface le contenu si max est supérieur ou egal a 2 (pour ne pas supprimer les titres)
End Sub

@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
467
Réponses
7
Affichages
829
Réponses
0
Affichages
657
Retour