Plage variable + ajout d'une nouvelle ligne
Sybille8484
-
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17277 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
- Ligne occupée - Forum SFR
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
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
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