Effacer le contenu d'une cellule en fin de macro.

Résolu
makbob Messages postés 14 Statut Membre -  
makbob Messages postés 14 Statut Membre -
Bonjour,
J'ai une macro qui s'exécute parfaitement bien et qui sert à basculer une ligne d'une de la liste d'attente à la liste des mesures en place. Je souhaiterai qu'après l'exécution de la macro la cellule où la condition qui permet ce transfert soit effacer (effacer formule). la Macro :
Sub Recopier()
Application.ScreenUpdating = False 'fige ecran
Ln1 = 8
With Worksheets("TB SITUATION EN ATTENTE") 'mettre le nom de l'onglet Liste d'attente
'premiere cellule vide
Ln2 = Sheets("TB SITUATION EN PLACE").Range("B" & Rows.Count).End(xlUp).Row + 1
If Ln2 < 8 Then Ln2 = 8
While .Cells(Ln1, 1).Value <> ""
If UCase(.Range("Q" & Ln1).Value) = "MEP" Then
Sheets("TB SITUATION EN PLACE").Range("B" & Ln2 & ":M" & Ln2).Value = .Range("B" & Ln1 & ":M" & Ln1).Value
Ln2 = Ln2 + 1
End If
Ln1 = Ln1 + 1
Wend
End With
Sheets("TB SITUATION EN PLACE").Activate
Range("B7").CurrentRegion.Select
With Range("B8:M" & Ln2 - 1)

End With
Application.ScreenUpdating = True

End Sub
A la fin de cette macro il faut que la cellule S sur la ligne qui est copiée soit effacée et coloriée en jaune. Merci beaucoup pour votre aide

8 réponses

  1. melanie1324 Messages postés 1561 Statut Membre 156
     
    Bonjour,

    Sub Recopier()
    Application.ScreenUpdating = False 'fige ecran
    Ln1 = 8
    With Worksheets("TB SITUATION EN ATTENTE") 'mettre le nom de l'onglet Liste d'attente
    'premiere cellule vide
    Ln2 = Sheets("TB SITUATION EN PLACE").Range("B" & Rows.Count).End(xlUp).Row + 1
    If Ln2 < 8 Then Ln2 = 8
    While .Cells(Ln1, 1).Value <> ""
    If UCase(.Range("Q" & Ln1).Value) = "MEP" Then
    Sheets("TB SITUATION EN PLACE").Range("B" & Ln2 & ":M" & Ln2).Value = .Range("B" & Ln1 & ":M" & Ln1).Value
    Ln2 = Ln2 + 1
    End If
    Ln1 = Ln1 + 1
    Wend
    End With
    Sheets("TB SITUATION EN PLACE").Activate
    Range("B7").CurrentRegion.Select
    With Range("B8:M" & Ln2 - 1)

    End With
    Application.ScreenUpdating = True

    Sheets("TB SITUATION EN PLACE").cells("S" & Ln2) = ""
    Sheets("TB SITUATION EN PLACE").cells("S" & Ln2).Interior.Color = 65535

    End Sub
    0
  2. makbob Messages postés 14 Statut Membre
     
    Bonjour,
    Avant toute chose merci d'avoir répondu à ma demande. Je viens de l'essayer et il m'affiche une erreur d'exécution 5. La suppression du contenu de la cellule doit se faire sur la feuille "TB SITUATION EN ATTENTE" puisque la ligne est copiée de cette feuille vers l'autre. J'ai essayé de changé le nom de la feuille dans ce que vous m'avez proposé mais çà ne fonctionne pas.
    0
  3. makbob Messages postés 14 Statut Membre
     
    Re,
    Désolé je me suis trompé de colonne en fait la cellule est sur la colonne Q. C'est cette cellule qui conditionne le transfert de la ligne vers la liste des situations en cours. Merci
    0
    1. melanie1324 Messages postés 1561 Statut Membre 156
       
      j'ai compris d'ou venait l'erreur :

      Sub Recopier()
      Application.ScreenUpdating = False 'fige ecran
      Ln1 = 8
      With Worksheets("TB SITUATION EN ATTENTE") 'mettre le nom de l'onglet Liste d'attente
      'premiere cellule vide
      Ln2 = Sheets("TB SITUATION EN PLACE").Range("B" & Rows.Count).End(xlUp).Row + 1
      If Ln2 < 8 Then Ln2 = 8
      While .Cells(Ln1, 1).Value <> ""
      If UCase(.Range("Q" & Ln1).Value) = "MEP" Then
      Sheets("TB SITUATION EN PLACE").Range("B" & Ln2 & ":M" & Ln2).Value = .Range("B" & Ln1 & ":M" & Ln1).Value
      Ln2 = Ln2 + 1
      End If
      Ln1 = Ln1 + 1
      Wend
      End With
      Sheets("TB SITUATION EN PLACE").Activate
      Range("B7").CurrentRegion.Select
      With Range("B8:M" & Ln2 - 1)

      Sheets("TB SITUATION EN PLACE").range("S" & Ln2) = ""
      Sheets("TB SITUATION EN PLACE").range("S" & Ln2).Interior.Color = 65535


      End With
      Application.ScreenUpdating = True


      End Sub
      0
  4. makbob Messages postés 14 Statut Membre
     
    Merci mais j'ai essayé avant cette option mais çà ne fonctionne pas. J'ai toujours le même message "erreur d'exécution 5"
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. makbob Messages postés 14 Statut Membre
     
    je vous envoie le fichier si vous voulez le tester. C'est vrai que sans le fichier c'est difficile de voir d'où vient l'erreur. Merci par avance
    http://www.cjoint.com/c/FDnnGCgZRLs
    0
  7. makbob Messages postés 14 Statut Membre
     
    Bonjour,
    Merci d'avoir pris le temps de voir le fichier. Cà fonctionne mais que pour la première cellule alors que normalement quand on saisi la deuxième ligne çà devra faire la même opération. Le principe est de basculer chaque ligne en attente vers l'autre feuille tout en gardant les lignes copier. La suppression du contenu de la cellule permet d'éviter que la même ligne soit copier une deuxième fois. J'espère que mes explications sont claires. Encore merci pour votre aide.
    0
    1. melanie1324 Messages postés 1561 Statut Membre 156
       
      oui j'ai compris. et je vois ce qu'il faut faire.
      Je ferais la modif demain
      0
  8. makbob Messages postés 14 Statut Membre
     
    Bonjour,
    C'est bon j'ai inséré une autre macro pour effacer la cellule car j'en ai besoin en urgence. Merci beaucoup pour votre aide. C'est sympa de votre part. Bonne continuation.
    0
  9. makbob Messages postés 14 Statut Membre
     
    Super, merci beaucoup pour tout. Bonne continuation.
    0