Copie de Ligne dont cellule contient texte spécifique

Bonjour,

Apres avoir tourné autour du pot pendant plusieurs heures ma tête fume ... Je m’en retourne à vous pour vous demander un peu d’aide. Voici mon problème.

J’aimerai parvenir à créer un tableau Excel me permettant de (voir piece jointe):

1- J’énumère mes souhaits et états de départ :

  • L’onglet Master sera toujours la référence d’où les infos seront prises.
  • Le fichier devra être évolutif, c'est-à-dire qu’il devra être modifiable sans devoir retoucher la macro (ajout/suppression de colonne, etc.…)

2- J’aimerai parvenir à créer un tableau Excel me permettant :

  • Que dés lors une cellule contient le texte « OK » en colonne ABC01, La ligne entière soit automatiquement copier dans l’onglet portant le même nom. (prenons ici l’exemple de la ligne 2 : La ligne 2 devra être copié dans les onglets ABC01, ABC03, ABC04. Les onglets seront crée manuellement)
  • De pousser la macro pour que celle-ci me permette d’ajouter des colonnes ABCXX autant que désirées et qu’elle les reconnaisse afin de retrouver les « OK » (qui seront au préalablement renseignés manuellement) et de placer les lignes dans l’onglet correct.
J’avais pensé pour cela faire une sorte de règle trouvant toutes les colonnes commençant par « ABC » (ce texte ne changera jamais) sur la ligne 1. (Je n’ai rien trouvé sur ca et ne sais donc pas si c’est possible…)

- De pouvoir mettre un « OK » dans une colonne ABCXX et que la ligne se mette à jour directement dans le bon onglet sans devoir cliquer sur un bouton pour lancer la macro. (je crois que cela est possible, sinon le coup de la création d’un bouton dédié fera largement l’affaire)

Je n’ai pu, à l’heure ou je vous parle, réaliser seulement une macro qui:

  • copie les lignes correctement dans le bon onglet mais ne les mets pas à jour. Elle les colle toujours les unes aprés les autres sans effacer les anciennes.
  • les colonnes ABCXX sont localisées au préalable.
Sub FiltreRoro()

  Dim DerLigne As Long
  Dim Ligne As Long
  Dim Abc As String
  Dim Col As Integer
  Dim Lastline As Long
  Dim Firstcol As Integer
  Dim Lastcol As Integer
  Dim Cell As Range

  Sheets("Master").Activate
  Lastline = Range("A" & Rows.Count).End(xlUp).Row

  For Each Cell In ActiveSheet.Range(Cells(2, 7), Cells(Lastline, 12))
  Sheets("Master").Activate
  If Cell.Value = "OK" Then
  Col = Cell.Column
  Ligne = Cell.Row
  Abc = Cells(1, Col).Value
  Cells(Ligne, Col).EntireRow.Copy 'Copie de la ligne où "OK" apparait.

  Sheets(Abc).Activate
  DernLigne = Range("A" & Rows.Count).End(xlUp).Row
  Cells(DernLigne + 1, 1).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
End If
Next
End Sub

J’espère avoir été suffisamment clair… mais je n'en suis pas sur... ca fume toujours...et merci d’être indulgent. Je ne connais l'existance de VBA uniquement depuis 2 jours...

Merci pour votre aide !

Romanohh

96exemple-web.zip (10.37 Ko)

Bonjour

Pour amorcer

Bonjour Banzai64,

Merci énormément pour le coup de main! L'Amorcage et plutot robuste! C'est exactement ce que je cherchais à construire.

Je vais maintenant me pencher plus profondément sur ce code et éssayer de le comprendre.

Tu m'enlèves une grosse épine du pied. Je cloture donc ce sujet.

Et merci beaucoup pour cet acceuil!

Romanohh

Re Banzai64,

Apres avoir farfouiller dans ton code et ayant, à peu de chose pres, compris son élaboration, j'aimerai que tu m'expliques quelle(s) ligne(s) est(sont) utilisée(s) ici pour executer la fonction du copier/coller en écrasant les anciennes données lors de chaques clic sur le bouton.

Je cherche à utiliser cette fonction sur un autre fichier.

Merci.

Bonjour

Quelques commentaires dans le code

Super, je vais analyser tout ca.

Merci pour cette réactivité!

Rechercher des sujets similaires à "copie ligne contient texte specifique"