Copie des donnees d'une feuille a une autre

Résolu
r4944 Messages postés 136 Statut Membre -  
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour ,

voici mon code qui me permet de transférer des donnèes dèja traitès d'une autre feuille vers la feuille ouverte , mon probléme c'est que a chaque que je fais un transfert de donnees il ecrase ce qui est déja ecrit et il copie dans la premiere ligne , comment faire por insrire les données transferées apartir de la premiére ligne evide

Merci pour votre aide

'--------
Sub Importdatav2()
Dim Source As Workbook, Dercol As Integer
Dim Nbre As Integer, Tablo, Cptr As Integer, Lig As Integer, Col As Integer
Dim FichiersAOuvrir, I As Integer

Application.ScreenUpdating = False

FichiersAOuvrir = Application.GetOpenFilename(, , , , True)
If IsArray(FichiersAOuvrir) Then
For I = LBound(FichiersAOuvrir, 1) To UBound(FichiersAOuvrir, 1)
Set Source = Application.Workbooks.Open(FichiersAOuvrir(I), , True)
With Sheets("Workload - Charge de travail")
Dercol = .Rows(2).Find(what:="*", searchdirection:=xlPrevious).Column
Nbre = Application.CountIf(.Columns("AQ"), "XX")
ReDim Tablo(Nbre, Dercol)
Lig = 1
For Cptr = 1 To Nbre
Lig = .Columns("AQ").Find("XX", .Cells(Lig, "AQ"), xlValues).Row
For Col = 1 To Dercol
Tablo(Cptr, Col) = .Cells(Lig, Col)
Next Col
Next Cptr
End With
Source.Close False

With ThisWorkbook.Sheets("Sheet1")
.Range("A2").Resize(Cptr, Dercol) = Tablo
'.Activate
End With
Next I
Else
MsgBox "Aucun choix"
End If
End Sub

1 réponse

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

          With ThisWorkbook.Sheets("Sheet1")
            derlig = .Range("A" & Rows.Count).End(xlUp).Row + 1 'premiere cellules vide colonne A
            .Range("A" & derlig).Resize(Cptr, Dercol) = Tablo
            '.Activate
         End With
    
    1
    1. r4944 Messages postés 136 Statut Membre
       
      Merci pour votre réponse est ce que je dois assigner derlig as integer ?
      0
    2. r4944 Messages postés 136 Statut Membre
       
      c'est bon ca marche a mervaille y'a til une façon d'éviter les */NA
      0
      1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > r4944 Messages postés 136 Statut Membre
         
        Bonjour,

        une façon d'éviter les */NA Vous pouvez les eviter en modifiant les formules des cellules, que vous copiez, pour ne pas les avoir

        ou par code:

        remplacez:
        For Col = 1 To Dercol
                    Tablo(Cptr, Col) = .Cells(Lig, Col)
        Next Col


        par:
        For Col = 1 To Dercol
            If Not (WorksheetFunction.IsNA(.Cells(Lig, Col))) Then
                  Tablo(Cptr, Col) = .Cells(Lig, Col)
            End If
        Next Col
        0