Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

macro pour effacer le contenu d'une ligne

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 !

ricobasse

XLDnaute Nouveau
Bonjour,

Je suis nouveau et un peu débutant, mais je me soigne
J’ai créé une macro dans un bouton destiné à l’effacement d’une ligne choisie dans une liste dont certaines colonnes comportent des recherchev (on respire...)
En fait, une remise à zéro de cette ligne avec restitution de la recherchev (pour réutilisation immédiate)
Cela fonctionne, mais seulement à l’endroit de la création, si je pointe ailleurs, c’est toujours la même ligne qui s’efface
Cela doit venir du fait que la plage d’effacement est définie dans le script
Comment faire pour contourner cette définition ?

D'avance merci

Le script :

Sub effacer()
'
' effacer Macro
' Macro enregistrée le 23/11/2006 par ricobasse
'

'
Range("B4:H4").Select
Selection.ClearContents
Range("D3").Select
Selection.Copy
Range("D4").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End Sub
 
Re : macro pour effacer le contenu d'une ligne

Bonjour,

Dans ton post tu parles de ligne à supprimer et dans ta macro ce sont les données que tu supprimes d'où ma question :c'est la ligne ou les données de cette ligne que tu veux supprimer.

A te lire
 
Re : macro pour effacer le contenu d'une ligne

salut à toi

au lieu de range("B4:H4") tu mets :
ligne=activecell.row
range("B"&cstr(ligne)&":H"&cstr(ligne)).select
selection.clearcontents

et pour range("D3") tu mets
range("D"&cstr(ligne))=range("D"&cstr(ligne-1))

là tu suprimes B:H ligne courrante et tu recopies d ligne précedante sur d ligne courrante

salutations
 
Dernière édition:
Re : macro pour effacer le contenu d'une ligne

Merci de vos réponses
Dan, je me suis un peu embrouillé dans l'exposé; il s'agissait bien d'effacer le contenu et non supprimer la ligne
Wilfried, ta rectif fonctionne; je pointe une ligne au hasard, elle est effacée. Seulement, au lieu de copier la formule (recherchev col D et col H) çà affiche VRAI ds la col D

ligne = ActiveCell.Row
Range("B" & CStr(ligne) & ":H" & CStr(ligne)).Select
Selection.ClearContents
Range("D" & CStr(ligne)) = Range("D" & CStr(ligne - 1)).Select
Selection.Copy

Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End Sub
 
Re : macro pour effacer le contenu d'une ligne

?...qq chose m'échappe...
la formule à recopier est une recherchev mais la cellule destinataire affiche "VRAI", et pas la recherchev.
Si je choisis "copier/coller", comment exprimer "cellule du dessus, ou cellule précédente" pour qu'il ne revienne pas à chaque fois chercher la même
Comme vous le voyez, c'est tout à la rame...
Merci de votre patience
 
Re : macro pour effacer le contenu d'une ligne

salut ricobasse

Voici un petit code

selection.clearcontents
ligne = Activerange.row ' je crois bien que c'est cela
range("X" & cstr(ligne-1)).select
selection.copy
range("X" & cstr(ligne)).select
selection.paste

ca devrait régler ton probleme si j'ai bien compris ta demande

salutations, A+
 
Re : macro pour effacer le contenu d'une ligne

Bonsoir,

J'ai ammendé la Macro de Wilfired. Vois si cela convient.
Code:
Sub effacer()
 ' effacer Macro
 ' Macro enregistrée le 23/11/2006 par ricobasse
Dim ligne As Long
Application.screenupdating=False
ligne = ActiveCell.Row
Range("B" & CStr(ligne) & ":H" & CStr(ligne)).ClearContents
Range("D" & CStr(ligne)).Copy Destination:=Range("D" & CStr(ligne - 1))
Application.ScreenUpdating = True
End Sub
Bonne soirée
 
Re : macro pour effacer le contenu d'une ligne

Salut à vous, Dan et Wilfried
Dan, ton code efface la ligne mais ne lui rend pas sa fonction
Wilfried, le tien fait "erreur 424": objet requis

Je vous fais un petit topo sur ce que je souhaite faire:
Entreprise de portage de presse, 120 tournées, autant de porteurs.
Chaque jour, un état de service doit être établi
Le première colonne affiche un code tournée (2 car.), la seconde fait une recherchev sur ce code pour trouver dans une base (annuaire) le nom du titulaire de la tournée, la 3ème indique via une liste déroulante le motif de l'absence (panne, congé, maladie, etc.), la 4e affiche le nom du remplacant du jour (recherchev sur tableau d'expl.)
D'un jour sur l'autre, on peut avoir à effacer tout ou partie de la veille et remplacer.
D'où la necessité de restituer les formules de recherchev lors de l'effacemnt d'une ligne obsolète
Un bouton "tri" classe ensuite le tout sur la colonne "motif de l'absence"

Voilà, si çà peut vous éclairer...

Encore merci de votre disponibilité
 
Re : macro pour effacer le contenu d'une ligne

🙂 CA Y EST! J'ai fini par trouver!
A force de triturer, mixer vos idées

ligne = ActiveCell.Row
Selection.ClearContents
Range("J4:K4").Select
Selection.AutoFill Destination:=Range("J4:K5"), Type:=xlFillDefault
Range("J4:K5").Select

Encore merci pour vos interventions, j'ai appris plein de trucs 😉

A+, car je pense qu'il y aura d'autres occasions 😀
 
- 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

Discussions similaires

Réponses
2
Affichages
2 K
Compte Supprimé 979
C
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…