Copie des donnees d'une feuille a une autre

Résolu/Fermé
r4944 Messages postés 122 Date d'inscription vendredi 2 octobre 2015 Statut Membre Dernière intervention 3 mars 2017 - Modifié par r4944 le 22/12/2015 à 18:12
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 - 23 déc. 2015 à 08:12
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


A voir également:

1 réponse

f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
22 déc. 2015 à 18:59
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
r4944 Messages postés 122 Date d'inscription vendredi 2 octobre 2015 Statut Membre Dernière intervention 3 mars 2017
22 déc. 2015 à 19:12
Merci pour votre réponse est ce que je dois assigner derlig as integer ?
0
r4944 Messages postés 122 Date d'inscription vendredi 2 octobre 2015 Statut Membre Dernière intervention 3 mars 2017
22 déc. 2015 à 19:17
c'est bon ca marche a mervaille y'a til une façon d'éviter les */NA
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709 > r4944 Messages postés 122 Date d'inscription vendredi 2 octobre 2015 Statut Membre Dernière intervention 3 mars 2017
Modifié par f894009 le 23/12/2015 à 08:26
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