Plage variable + ajout d'une nouvelle ligne
Bonjour,
Etant novice en vba, je fais appelle à vous, car je suis confrontée à une véritable casse-tête.
J'aimerais corriger le code ci-dessous pour qu'il prenne en compte si de nouvelles lignes sont ajoutées.
Sub testselectionvariable()
Dim Rng As Range
Set Rng = Range("D4:AH59")
Rng.Select
For Each Rng In Selection
If Rng = "" Then Rng = "0"
Next
End Sub
Idem pour celui-ci
Sub Selecclear_test()
Dim Rng As Range
Set Rng = Range("D4:AH59")
Rng.Select
For Each Rng In Selection
If Rng = "0" Then Rng.ClearContents
Next
End Sub
Quelqu'un peux-t-il m'aider, s'il vous plait ?
Merci
Windows / Edge 108.0.1462.76
2 réponses
-
Bonjour
Elle vous le dira ou pas.
Sybille8484:
Sub testselectionvariable() Dim Rng As Range, Cel As Range, Derlig As Long On Error GoTo Fin Application.ScreenUpdating = False 'fige rafraichissement ecran pour plus de rapidite Derlig = Range("D" & Rows.Count).End(xlUp).Row 'derniere cellule non vide colonne D Set Rng = Range("D4:AH" & Derlig) For Each Cel In Rng If Cel = "" Then Cel = "0" Next Fin: Application.ScreenUpdating = True 'rafraichissement ecran Ok End Sub Sub Selecclear_test() Dim Rng As Range, Cel As Range, Derlig As Long On Error GoTo Fin Application.ScreenUpdating = False 'fige rafraichissement ecran pour plus de rapidite Derlig = Range("D" & Rows.Count).End(xlUp).Row 'derniere cellule non vide colonne D Set Rng = Range("D4:AH" & Derlig) For Each Cel In Rng If Cel = "0" Then Cel.ClearContents Next Fin: 'retablir le rafraichissement en cas d'erreur Application.ScreenUpdating = True 'rafraichissement ecran Ok End Sub-
-
-
@Sybille8484
Bonjour,
DAns votre code je prends la derniere cellule colonne D, mais quelle colonne peut etre la plus longue?
-
@f894009
Merci pour votre aide. Le code fonctionne parfaitement..
Je devais juste remplir ma première cellule de la dernière ligne de la colonne D
Merci beaucoup ????
-
Bonsoir,
Pouvez vous m'expliquer comment adapter le code clearcontents à l'ensemble des feuilles de mon classeur Sheets(Array("JANV", "FEV", "MARS", "AVRIL", "MAI", "JUIN", "JUIL", "AOUT", "SEPT", "OCT", "NOV", "DEC"))
Car je n'arrive pas à l'appliquer à l'ensemble de mes feuilles.
Pris séparément le code fonctionne en adoptant la dernier colonne pour les mois de 30 jours ("D4: AG") et le mois de février ("D4:AE).
Mais je ne parviens pas à créer qu'une seule macro pour l'ensemble du classeur.
En vous remerciant par avance
-
-
Contributeur
bonjour,
Cette suggestion ne te convient pas?
-
Bonjour yg_be
En faites, votre première solution était parfaite tant que je ne rajoutais pas de nouvelle ligne.
Comme expliqué, quand j'insère une nouvelle ligne le code ne prends pas en compte la nouvelle ligne...
Merci pour votre aide et vos conseils.
La découverte du VBA est passionnante, j'ai hâte d'apprendre :)
-
Contributeur@Sybille8484
Ma suggestion, c'est de ne traiter que les lignes blanches. Cela ne convient pas?
-