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 -
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
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
A voir également:
- Effacer le contenu d'une cellule en fin de macro.
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Fin des zfe - Guide
- Fusionner deux cellules excel en gardant le contenu - Guide
- Effacer les données de navigation sur android - Guide
- Reconsidérer le traitement de vos informations à des fins publicitaires - Accueil - Réseaux sociaux
8 réponses
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
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
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.
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.
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
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
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
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
Merci mais j'ai essayé avant cette option mais çà ne fonctionne pas. J'ai toujours le même message "erreur d'exécution 5"
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
http://www.cjoint.com/c/FDnnGCgZRLs
Hello,
regarde ce fichier et dis moi si cela correspond à ton attente :
https://www.cjoint.com/c/FDolRe5oDan
regarde ce fichier et dis moi si cela correspond à ton attente :
https://www.cjoint.com/c/FDolRe5oDan
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.
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.
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.
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.