Effacer le contenu des cellules d'une ligne

Bonjour,

--> J'essaye de faire un macro pour supprimer le contenu (pas les cellules elle même mais bien le contenu) de toutes les cellules de la première ligne sauf les cellules contenant un tiret. Etant un débutant en VBA j'ai du mal a le réaliser et je n'arrive pas non plus a adapter ce que j'ai pu trouver sur internet a mon problème.

Résumé : Je cherche un macro pouvant supprimé le contenu de toutes les cellules de la première ligne sauf les cellules avec un tiret

--> Deuxième problème annexe qui n'est qu'un problème d'affichage : Quand je lance une macro ce n'est pas instantané, il y'a un écran blanc qui apparait pendant quelques secondes. Après une rapide recherche j'ai trouvé cette solution : Application.ScreenUpdating = False a mettre au début, et Application.ScreenUpdating = True a la fin. Néanmoins ce ne marche toujours pas, ce n'est toujours pas "instantané" comme avant.

Merci d'avance pour vos réponses,

Cordialement,

Mael

Bonjour

Bonjour,

Salut M12

Il est vrai que sans fichier, c'est compliqué de proposer une réponse pertinente...

Cependant, j'ai réaliser un code avec quelques explication que vous avez à adapter à vos besoin. Dites moi si ça vous convient.

Sub effacer()
Dim Cell As Range
Dim Plage As Range
Dim txt As String
'définition de la plage
Set Plage = Range("A2:" & Range("A2").End(xlToRight).Address) 'dans mon exemple, la ligne concernée commence en A2
    For Each Cell In Plage 'pour chaque cellules de la plage
    txt = Cell.Value
    If txt Like "*-*" Then 'si la cellule contient un tiret (tiret du 6 ici)
        'ne rien faire
    Else 'sinon
        Cell.ClearContents 'effacer le contenu
    End If
    Next Cell 'cellule suivante
End Sub

Cordialement

Voila un fichier :

26suppr.xlsx (9.36 Ko)

Merci pour ta réponse, mais le problème avec ton macro c'est qu'il s'arrête des la premières action, il ne test pas toutes les cases

Re,

Teste avec cette macro

Sub test()
Dim i%, Dc%
Dc = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column
  For i = 1 To Dc
        If Cells(1, i).Value <> "-" Then Cells(1, i).Value = ""
  Next i
End Sub

Nickel, a ce que j'ai pu voir ca marche parfaitement !

Merci beaucoup !

Bonjour Mael,

tu a écrit :

Nickel, à ce que j'ai pu voir ça marche parfaitement !

pour passer le sujet en résolu, clique sur près de (coin haut droit du post de M12); ça permet aussi de clôturer le fil de la discussion (toi seule peut le faire, car c'est toi qui a créé ce sujet).

dhany

Rechercher des sujets similaires à "effacer contenu ligne"