Copier/coller si mot clée sinon copier

Bonjour,

étant débutant en vba je bloque sur un point j'arrive a copier coller si retour d'un mot clés, mais je bloque sur ma boucle(si sinon).

SI

Sub EcfiltreAGM()

Dim strSearch

Dim rg As Range, rgF As Range

Dim i As Integer

Application.ScreenUpdating = False

strSearch = ("AGM")

'On défini ici la plage de cellules contenant les données

' comme étant la région autour de la cellule 1 (A1)

Set rg = Sheets("Import l1").Cells(1).CurrentRegion

'On boucle sur chaque ligne de la plate

For i = 1 To rg.Rows.Count

'On cherche dans cette ligne la valeur à trouver

Set rgF = rg.Rows(i).Find(strSearch, , xlValues, xlPart)

'Si on la trouve alors rgF n'est pas vide, on copie dans notre onglet Résultats

If Not rgF Is Nothing Then

rg.Rows(i).Copy Sheets("Encours AGM").Range("A60000").End(xlUp).Offset(1, 0)

Set rgF = Nothing

End If

Next i

Application.ScreenUpdating = True

SInon

Copier meme feuille mes vers cellule g.

End Sub

Merci d'avance car je suis bloquer x)

Bonjour,

regarde le dernier fichier joint sur le lien suivant:

https://forum.excel-pratique.com/excel/index-equiv-t99078.html

Merci je vais test et je reviens vers vous pour mettre la solution.

Merci du retour !

je suis bloque sur comment je vais faire pour rentrer dans la boucle

if strSearch = "LD5"

Faire mon code

else

supprimer mes ligne ld5 et les copier les autres sur une autre colonne.

en if

dans l 'idée s 'est sa car le fichier james 007 même bien expliquer est assez costaud x)

dans l 'idée s 'est sa car le fichier james 007 même bien expliqué est assez costaud x)

Je suis à peu près sûr que mon surpoids n'a rien à voir avec ta macro ....

Pourquoi ne pas joindre ton fichier avec ta macro ... même à l'état de brouillon ...

je nettoie le code et je reviens vers vous =)! merci encore

Si tu as envie de nettoyer le code ... et de le faire fonctionner ... no problemo ...

Surtout quavec toutes les explications d'Isabelle qui sont vraiment parfaites ... cela devrait te faciliter la tâche ...

Veuillez m'excusez de mon retour tardif car mon pc est mort le week end de ma question x), après de nombre aventure me revoila!

Sub Ecfiltreig()

Dim strSearch

Dim rg As Range, rgF As Range

Dim i As Integer

Application.ScreenUpdating = False

strSearch = ("L5")

if strSearch > 1

'On défini ici la plage de cellules contenant les données

' comme étant la région autour de la cellule 1 (A1)

Set rg = Sheets("Import bgsq").Cells(1).CurrentRegion

'On boucle sur chaque ligne de la plate

For i = 1 To rg.Rows.Count

'On cherche dans cette ligne la valeur à trouver

Set rgF = rg.Rows(i).Find(strSearch, , xlValues, xlPart)

'Si on la trouve alors rgF n'est pas vide, on copie dans notre onglet Résultats

If Not rgF Is Nothing Then

rg.Rows(i).Copy Sheets("Encours BSG").Range("A60000").End(xlUp).Offset(1, 0)

Set rgF = Nothing

End If

Else

je recherche ( copier coller toute les lignes qui non pas ce mot la dans la meme feuille colone h mais je le ferais en tableau croisé

End if

Next i

Application.ScreenUpdating = True

End Sub

ps : le code de recherche marche mais je bloque sur la partie boucle.

Bonjour,

Déjà évoqué .... dans le Message #5 ....

Pourquoi ne pas joindre ton fichier avec ta macro ...

Par ailleurs ... si tu ne veux poster que du code ... il ne faut pas hésiter à utiliser les balises Code ...

Dans l'idée s 'est classeur qui va cherche deux autres classeur et après il fait le trie (sur un filtre) mais j'utilise par mot clée car débutant en vba

Sub Importglobal()

Importencour
Importstock
Importglobal

End Sub

Sub Importencour()

Workbooks.Open Filename:="..\global livraison.xlsx"
Workbooks("global livraison.xlsx").Worksheets("Import EC").Cells.ClearContents ' Efface le contenu de la feuille qui va recevoir les données

Workbooks.Open Filename:="..\En_Cours.xlsx" 'Ouvre le fichier Excel source

Workbooks("En_Cours.xlsx").Worksheets("Liste des OF").Cells.Copy _
Workbooks("global livraison.xlsx").Worksheets("Import EC").Range("A1") 'Copie-colle le fichier

Workbooks("En_Cours.xlsx").Close False
Workbooks("global livraison.xlsx").Close True

End Sub

Sub Importstock()

Workbooks.Open Filename:="..\global livraison.xlsx"
Workbooks("global livraison.xlsx").Worksheets("Import Stock").Cells.ClearContents ' Efface le contenu de la feuille qui va recevoir les données

Workbooks.Open Filename:="..\En_Cours.xlsx" 'Ouvre le fichier Excel source

Workbooks("En_Cours.xlsx").Worksheets("Liste des OF").Cells.Copy _
Workbooks("global livraison.xlsx").Worksheets("Import Stock").Range("A1") 'Copie-colle le fichier

Workbooks("En_Cours.xlsx").Close False 'Referme le fichier source
Workbooks("global livraison.xlsx").Close True 'Referme le fichier destinataire

End Sub

Sub Importfichierglobal()

Path = "..\import\"
Filename = Dir(Path & "Gobal*.xlsx")
  Do While Filename <> ""
  Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
     For Each Sheet In ActiveWorkbook.Sheets
     Sheet.Copy after:=ThisWorkbook.Sheets(1)
  Next Sheet
     Workbooks(Filename).Close
     Filename = Dir()
  Loop

  End Sub

Sub EcfiltreIC()

Dim strSearch
   Dim rg As Range, rgF As Range
   Dim i As Integer

   Application.ScreenUpdating = False

   strSearch = ("IC")

'test suppression
'Workbooks("global livraison.xlsx").Worksheets("Import EC").Cells.ClearContents
'test suppression

   'On défini ici la plage de cellules contenant les données
   ' comme étant la région autour de la cellule 1 (A1)
   Set rg = Sheets("Import EC").Cells(1).CurrentRegion

   'On boucle sur chaque ligne de la plate
   For i = 1 To rg.Rows.Count
      'On cherche dans cette ligne la valeur à trouver
      Set rgF = rg.Rows(i).Find(strSearch, , xlValues, xlPart)

      'Si on la trouve alors rgF n est pas vide, on copie dans notre onglet Résultats
      If Not rgF Is Nothing Then
         rg.Rows(i).Copy Sheets("Encours IC").Range("A60000").End(xlUp).Offset(1, 0)
         Set rgF = Nothing
      End If
   Next i

   Application.ScreenUpdating = True

End Sub

Sub EcfiltreIG()

Dim strSearch
   Dim rg As Range, rgF As Range
   Dim i As Integer

   Application.ScreenUpdating = False

   strSearch = ("IG")

   'On défini ici la plage de cellules contenant les données
   ' comme étant la région autour de la cellule 1 (A1)
   Set rg = Sheets("Import EC").Cells(1).CurrentRegion

   'On boucle sur chaque ligne de la plate
   For i = 1 To rg.Rows.Count
      'On cherche dans cette ligne la valeur à trouver
      Set rgF = rg.Rows(i).Find(strSearch, , xlValues, xlPart)

      'Si on la trouve alors rgF n est pas vide, on copie dans notre onglet Résultats
      If Not rgF Is Nothing Then
         rg.Rows(i).Copy Sheets("Encours IG").Range("A60000").End(xlUp).Offset(1, 0)
         Set rgF = Nothing
      End If
   Next i

   Application.ScreenUpdating = True

End Sub

Sub EcfiltreIL()

Dim strSearch
   Dim rg As Range, rgF As Range
   Dim i As Integer

   Application.ScreenUpdating = False

   strSearch = ("IL")

   'On défini ici la plage de cellules contenant les données
   ' comme étant la région autour de la cellule 1 (A1)
   Set rg = Sheets("Import EC").Cells(1).CurrentRegion

   'On boucle sur chaque ligne de la plate
   For i = 1 To rg.Rows.Count
      'On cherche dans cette ligne la valeur à trouver
      Set rgF = rg.Rows(i).Find(strSearch, , xlValues, xlPart)

      'Si on la trouve alors rgF n'est pas vide, on copie dans notre onglet Résultats
      If Not rgF Is Nothing Then
         rg.Rows(i).Copy Sheets("Encours IL").Range("A60000").End(xlUp).Offset(1, 0)
         Set rgF = Nothing
      End If
   Next i

   Application.ScreenUpdating = True

End Sub

Sub ImportNONQUALITE() 

Dim strSearch
Dim rg As Range, rgF As Range
Dim i As Integer

Application.ScreenUpdating = False

strSearch = ("L5")
if strSearch > 1
'On défini ici la plage de cellules contenant les données
' comme étant la région autour de la cellule 1 (A1)
Set rg = Sheets("Import IL").Cells(1).CurrentRegion

'On boucle sur chaque ligne de la plate
For i = 1 To rg.Rows.Count
'On cherche dans cette ligne la valeur à trouver
Set rgF = rg.Rows(i).Find(strSearch, , xlValues, xlPart)

'Si on la trouve alors rgF n'est pas vide, on copie dans notre onglet Résultats
If Not rgF Is Nothing Then
rg.Rows(i).Copy Sheets("Encours IL").Range("A60000").End(xlUp).Offset(1, 0)
Set rgF = Nothing
End If
Else 
je recherche ( copier coller toute les lignes qui non pas ce mot la dans la meme feuille colone h mais je le ferais en tableau croisé 

End if 
Next i

Application.ScreenUpdating = True

End Sub

tu veux que je mette les fichier excel en ci-joint? merci

Sub NONQUALITE() ' test import stock validé

' // Copie des lignes desirées dans les feuilles de calcul dédiées

Dim PlageUtile As Range

Dim Ligne As Range

Dim Origine As Worksheet

Dim Destination As Worksheet

Dim LigneDestination As Integer

Set Origine = Worksheets("Import IL")

Set Destination = Worksheets("Non qualite")

si ligne destination = "nnqualite"

Set PlageUtile = Range(Origine.Cells(1, 1), Origine.Cells(1, 1).SpecialCells(xlLastCell))

MsgBox "Attention, nous allons travailler sur la plage " & PlageUtile.Address

LigneDestination = 1

For Each Ligne In PlageUtile.Rows

If Ligne.Cells(1, 3).Value = "nnqualite" Then

Ligne.Copy Destination.Cells(LigneDestination, 1)

LigneDestination = LigneDestination + 1

End If

Next

sinon

copier dans autre sheets

End Sub

Rechercher des sujets similaires à "copier coller mot clee sinon"