Transfert d'une ligne vers un autre onglet avec condition

Maud44

XLDnaute Junior
Bonjour,
Je sais que ce sujet a déjà été traité mais je n'ai jamais fait de programmation / macro VBA ...
Pour mon dossier je cherche à transérer une ligne vers l'onglet 'Documents diffusés' quand "100%" apparait en G4 ou G5 ...
(Voir fichier joint)
De plus, comment pouvons nous faire un "bouton" qui permet de confirmer que nous voulons bien que les lignes ou apparait le "100%" soit transférées vers un autre onglet ?

Cordialement,

D'avance merci,
 

Pièces jointes

  • Michel dossier DOSEQUI.xls
    103.5 KB · Affichages: 39
  • Michel dossier DOSEQUI.xls
    103.5 KB · Affichages: 44
  • Michel dossier DOSEQUI.xls
    103.5 KB · Affichages: 46

Dranreb

XLDnaute Barbatruc
Re : Transfert d'une ligne vers un autre onglet avec condition

Bonjour.
Je vous propose cette écriture:
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 7 Or Target.Row < 4 Or Target.Count <> 1 Then Exit Sub
If Target.Text <> "100%" Then Exit Sub
If MsgBox("Voulez vous l'archiver ?", _
   vbYesNo + vbQuestion, "Archivage ligne " & Target.Row) = vbNo Then Exit Sub
With Target.EntireRow
   .Resize(, 7).Copy Feuil2.Cells(Rows.Count, "A").End(xlUp).Offset(1)
   .Delete: End With
End Sub
Remarque: Feuil2 est le nom VBA de l'objet Worksheet tel qu'il figure dans la rubrique Microsift Excel Objets à gauche du nom "Documents diffusés" de la feuille Excel correspondante rappelé entre parenthèses. On peut d'ailleurs le changer soit dit en passant.
 
Dernière édition:

Maud44

XLDnaute Junior
Re : Transfert d'une ligne vers un autre onglet avec condition

Merci pour la réponse rapide.
Comment faire pour que ca marche sur mon fichier joint ? J'ai mis le code vba dansla cellule concernée ... clic droit sur l'onglet : visualiser le code... Mais il ne se passe rien une fois que le code est rentré.
Il manque certainement la déclaration des données ? (j'ai vu ca sur certains code vba mais n'en sait pas plus)

Est-il possible de l'appliquer pour la colonne concernée ?

Cordialement,
 

Pièces jointes

  • Michel dossier DOSEQUI.xls
    100.5 KB · Affichages: 42
  • Michel dossier DOSEQUI.xls
    100.5 KB · Affichages: 49
  • Michel dossier DOSEQUI.xls
    100.5 KB · Affichages: 43

Maud44

XLDnaute Junior
Re : Transfert d'une ligne vers un autre onglet avec condition

Oui c'est bon ! J'ai compris en fait après réflexion !
Et comment faire séparement pour quand le dossier concerné est à 99% faire en sorte qu'il aille dans les documents diffusés et qu'il reste dans les documents à diffuser ... Se rapprochant du but (100%) on peut estimer qu'il est quasiment diffusé entièrement ...
 

Dranreb

XLDnaute Barbatruc
Re : Transfert d'une ligne vers un autre onglet avec condition

Un truc comme ça, à peu près :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cel As Range, Presque As Boolean, ToutÀFait As Boolean
If Target.Column <> 7 Or Target.Row < 4 Or Target.Count <> 1 Then Exit Sub
If Target.Value > 0.99 Then
   Presque = Target.Value < 1: ToutÀFait = Not Presque
   If Presque Then If MsgBox("Voulez vous l'archiver ?", _
      vbYesNo + vbQuestion, "Archivage ligne " & Target.Row) = vbNo Then Exit Sub
   With Target.EntireRow
      On Error Resume Next
      Set Cel = Feuil2.Columns(1).Find(What:=.Columns(1).Value, LookIn:=xlValue, _
           LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
           MatchCase:=False, SearchFormat:=False)
      On Error GoTo 0
      If Not Cel Is Nothing Then Cel.EntireRow.Delete
      .Resize(, 7).Copy Feuil2.Cells(Rows.Count, "A").End(xlUp).Offset(1)
      If ToutÀFait Then .Delete
      End With: End If
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 333
Messages
2 087 374
Membres
103 528
dernier inscrit
maro