Identifier la dernière ligne pour echange de données entre c

Bonjour à tous le monde,

tout d'abord, je tenais à vous remercier de prendre le temps de me lire et de me donner un coup de main car je ne suis pas au top en VBA.

J'ai cherché sur votre forum et certains post m'on bien aidé pour entamer ma macro cependant, après quelques tests, j'ai rencontrer quelques difficultés.

Ce que j'ai commencé à faire :

J'ai créer une macro pour récupérer des données d'un classeur excel que j'exporte vers un autre (Cf. Code ci-dessous). Ces données se remplissent dans différentes colonnes que j'ai identifier par avance. Cependant, ce deuxième classeur ("Test-Dosier-Reception") à par endroit des casse (au sein de colonne) vide du coup lors que j'exporte mes données, les données se retrouvent sur la bonne colonne mais pas sur une seul et même ligne

Or, l'une des colonnes (la colonne B) du fichier "Test-Dosier-Reception" et rempli (n'a pas de vide) et suit la chronologie des données à exporter.

Ce que j'aimerais faire :

Je me demandais si il était possible d'identifier la dernière valeur de la colonne B du fichier "Test-Dosier-Reception" pour commencer a remplir les données à partir de cette ligne là.

Explication avec un exemple :

Par exemple, en B120 du fichier "Test-Dosier-Reception", j'ai une donnée, la macro lit toute la colonne identifie que la ligne B12, l'incrémente de 1 et commence a copier a la ligne suivante (B121)

Mon code :

Option Explicit

Sub Transfert()
Dim Chemin As String, Fichier As String
Dim Ws As Worksheet

Application.ScreenUpdating = False
Set Ws = Sheets("Feuil1")
Chemin = "C:\Users\299737\Desktop\"
Fichier = "Test-Dosier-Reception.xlsx"
If Dir(Chemin & Fichier) = "" Then
    MsgBox "Le fichier " & Fichier & " est introuvable"
    Exit Sub
End If

With Workbooks.Open(Chemin & Fichier)
    With .Sheets("Feuil1")
        Ws.Range("E9").Copy .Range("B" & Rows.Count).End(xlUp).Row.Offset(1, 0)
        Ws.Range("E1").Copy .Range("C" & Rows.Count).End(xlUp).Row.Offset(1, 0)
        Ws.Range("E2").Copy .Range("D" & Rows.Count).End(xlUp).Row.Offset(1, 0)
        Ws.Range("F5").Copy .Range("E" & Rows.Count).End(xlUp).Row.Offset(1, 0)
        Ws.Range("B9").Copy .Range("Y" & Rows.Count).End(xlUp).Row.Offset(1, 0)
    End With
    .Close savechanges:=True
End With

End Sub

Avez vous une idée, une proposition ?

Merci d'avance,

Guillaume

Bonsoir,

Et tu ne dis pas ce qu'il ne va pas dans ton code. S'il y avait le fichier qui va avec, c'est plus facile. Une astuce. Essaye de récupérer la dernière ligne de la colonne B dans une variable et utilise comme le paramètre de la ligne à coller.

Bonjour Raja,

Effectivement tu avais raison merci pour ton conseil !! J'ai réussi a faire la sélection en définissant une variable "derniereligne"

Je post mon code pour ceux qu'y aurais le même problème

Merci encore

Option Explicit   
Sub Transfert()  
Dim Chemin As String, Fichier As String
Dim Ws As Worksheet
Dim DerniereLigne As Long

If Range("E9").Value = "S. Forrat" Then

    Application.ScreenUpdating = False          
    Set Ws = Sheets("Feuil1")  
    Chemin = "C:\"   
    Fichier = "Test-Dosier-Reception.xlsx"           
    If Dir(Chemin & Fichier) = "" Then
        MsgBox "Le fichier " & Fichier & " est introuvable"
        Exit Sub
    End If

    With Workbooks.Open(Chemin & Fichier) 
    DerniereLigne = Range("B" & Rows.Count).End(xlUp).Row   'Identifie la dernière ligne de la journalière et rempli a partir de là

        With .Sheets("Feuil1")  
            Ws.Range("E9").Copy .Range("B" & DerniereLigne).Offset(1, 0)      
            Ws.Range("E1").Copy .Range("C" & DerniereLigne).Offset(1, 0)      
            Ws.Range("E2").Copy .Range("D" & DerniereLigne).Offset(1, 0)      
            Ws.Range("F5").Copy .Range("E" & DerniereLigne).Offset(1, 0)             
        End With
        .Close savechanges:=True

    End With
'Permet d'ouvrir la le fichier de reception
Workbooks.Open Filename:= _
"C:\" & Fichier

End If
End Sub
Rechercher des sujets similaires à "identifier derniere ligne echange donnees entre"