Extraction

Bonjour,
j'ai ecrit un programme qui sert copier des cellule d'un classeur excel à un autre, ça bug et je ne voi pas keskil ya danormal. quelqu'un pourait maider svp,merci d'avance.

Sub extraction()
Dim SearchString As String
Dim SearchChar As String
Dim MyPos As Integer
i = 3
NomFichierOrigine = "kkk"
Dim Wbk1 As Workbook, Wbk2 As Workbook
Set Wbk1 = ThisWorkbook
Set Wbk2 = Workbooks.Open(Filename:="C:\Users\Desktop\" & NomFichierOrigine & ".xlsx")

Windows(NomFichierOrigine & ".xlsx").Activate
Wbk2.Sheets(1).Select
Wbk2.Sheets(3).Select

With Selection

For j = 3 To 28

Wbk1.Worksheets(1).Cells(i, j).Value = Wbk2.Worksheets(l).Cells(i, j).Value
Wbk1.Worksheets(3).Cells(i, j).Value = Wbk2.Worksheets(3).Cells(i, j).Value

j = j + 1

Next j
End With
End Sub

4 réponses

  1. Bonjour,

    Tu as peut etre déjà trouvé ton erreur, sinon ça doit se passer là:

    Wbk1.Worksheets(1).Cells(i, j).Value = Wbk2.Worksheets(l).Cells(i, j).Value

    Tu as surement voulu mettre (1) et non (l).
    1. Bonjour,
      oui , exactement :D, c'etait exactement ça merci. j'aimerai substitué une ligne par une autre.celle ci:
      Set Wbk2 = Workbooks.Open(Filename:="C:\Users\Desktop\" & NomFichierOrigine & ".xlsx")

      je veux tout simplement definir Wbk2 = NomFichierOrigine sans avoir besoin de l'ouvrir car il est deja ouvert, s'il vous plait quelle commande je metterai?
      merci bien,
      1. Je crois que c'est tout simplement comme ça:

        Set Wbk2 = Workbooks(NomFichierOrigine & ".xlsx")
    2. merci, c'est bien ça.

      je souhaiterai copier la ligne x de la feuil1 du classeur1 et la ligne x de la feuil 3 du meme classeur vers les lignes 2 et 4 de la feuil 1 d'un autre classeur.

      j'ai essayé avec cette partie la mais ça marche pas, la macro me rempli que les données de la feuil1 du classeur1

      Wbk2.Sheets(1).Select
      Wbk2.Sheets(3).Select

      With Selection

      For j = 3 To 28

      Wbk1.Worksheets(1).Cells(2, j).Value = Wbk2.Worksheets(1).Cells(3, j).Value
      Wbk1.Worksheets(1).Cells(4, j).Value = Wbk2.Worksheets(3).Cells(4, j).Value

      j = j + 1

      Next j
      1. ça a fini par marché, just un peut de netoyage:

        For j = 3 To 28

        Wbk1.Worksheets(1).Cells(2, j).Value = Wbk2.Worksheets(1).Cells(3, j).Value
        Wbk1.Worksheets(1).Cells(4, j).Value = Wbk2.Worksheets(3).Cells(4, j).Value

        Next j