Plage variable + ajout d'une nouvelle ligne
Sybille8484
-
f894009 Messages postés 17414 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17414 Date d'inscription Statut Membre Dernière intervention -
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
A voir également:
- Plage variable + ajout d'une nouvelle ligne
- Darkino nouvelle adresse - Guide
- Partager photos en ligne - Guide
- Extreme download nouvelle adresse - Accueil - Outils
- Mètre en ligne - Guide
- Frédéric cherche à faire le buzz sur les réseaux sociaux. il a ajouté une image d’ours polaire sur une image de plage. retrouvez l'image originale de la plage. que cache l'ours polaire ? - Forum Graphisme
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
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
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 :)
Merci pour votre aide ^^ :)
Je test, et je reviens vers vous pour vous dire.
Merci encore
Merci pour le code.
J'ai testé, mais il ne prends pas toute la plage. il s'arrête à AH40
Une idée ?
Bonjour,
DAns votre code je prends la derniere cellule colonne D, mais quelle colonne peut etre la plus longue?
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