Problème import de documents (copie/colle)

Bonjour,

Je suis actuellement entrain de créer un document pour le travail et je dois notamment y importer d'un autre document. Etant débutant sur excel j'ai donc bricoler quelques choses avec des tutos et ce que je trouvais sur internet. Néanmoins j'ai un problème que je n'arrive pas à régler.

J'ai deux documents :

L'un qui est un export avec deux pages l'une qui s'appelle "voyages" et l'autre "segments"

L'autre avec ma macro où je veux copié les données dans les onglets "VOYA" et "SEG"

La difficulté c'est que je veux alimenter toutes les semaines les pages "VOYA" et "SEG" avec les données actualisés de mes segments. J'avais réussis à bricoler quelques choses dont j'étais plutôt content ça fonctionnait jusqu'au moment ou je me suis rendus compte d'un problème. Le copie/colle devait me supprimer ma première ligne du doc source pour enlever l'entête et en faite ca me supprime la dernière ligne du doc de destination donc je perds une ligne à chaque fois.

Je pense que le problème apparaît au moment du copie des données et que je ne sélectionne pas les bonnes dimensions. Quelqu'un a t il des pistes de réflexions ?

Voilà le code :

Sub FINimport2()

'evite de voir les opérations intermédiaire sur les fichiers

Application.ScreenUpdating = False

Application.DisplayAlerts = False

Dim ret As Integer

ret = MsgBox("Confirmez-vous l'importation des données de validation ?", vbYesNo)

If ret = vbNo Then

Exit Sub

Else

Dim chemin As String, fichier As String, titre As String

Dim wbk1 As Workbook, wbk2 As Workbook

Dim QuelFichier

Set wbk1 = ThisWorkbook

QuelFichier = Application.GetOpenFilename("Fichier Excel, *.xls;*.xlsx")

If QuelFichier = False Then Exit Sub

Set wbk2 = Workbooks.Open(QuelFichier)

'DIMENSION

Dim DerLigA As String

DerLigA = wbk1.Sheets("SEG").Range("A" & Rows.Count).End(xlUp).Row

Dim DerLigB As String

DerLigB = wbk2.Sheets("Segments").Range("A" & Rows.Count).End(xlUp).Row

'copie des données

wbk1.Sheets("SEG").Range("A" & (DerLigA) & ":CP" & (DerLigA + (DerLigB - 1)) & "").Value = wbk2.Sheets("Segments").Range("A1:CP" & DerLigB & "").Value

'DIMENSION

Dim DerLigC As String

DerLigC = wbk1.Sheets("VOYA").Range("A" & Rows.Count).End(xlUp).Row

Dim DerLigD As String

DerLigD = wbk2.Sheets("Voyages").Range("A" & Rows.Count).End(xlUp).Row

'copie des données

wbk1.Sheets("VOYA").Range("A" & (DerLigC) & ":CP" & (DerLigC + (DerLigD - 1)) & "").Value = wbk2.Sheets("Voyages").Range("A1:CP" & DerLigD & "").Value

wbk2.Close

MsgBox ("Données de validation intégrées !")

End If

End Sub "

Bonsoir username

sans fichier difficile , mais peut-être cela

wbk1.Sheets("SEG").Range("A" & (DerLigA) & ":CP" & (DerLigA + (DerLigB - 1)) & "").Value = wbk2.Sheets("Segments").Range("A2:CP" & DerLigB & "").Value

Range("A2:CP" & DerLigB & "").Value ...............A2 au lieu de A1 .............idem pour voyages

???

Bye

Bonjour,

Non malheureusement ça ne fonctionne pas.. ça supprime toujours la première ligne et ca met la dernière en N/A. Le document contient des données sensibles c'est pour ça que je ne le partage pas

Bonjour Username123

J'étais très occupée sur un projet complexe

Je reviens

Essaie ainsi :

Sub FINimport2()

'evite de voir les opérations intermédiaire sur les fichiers
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim ret As Integer
ret = MsgBox("Confirmez-vous l'importation des données de validation ?", vbYesNo)
If ret = vbNo Then
Exit Sub
Else

Dim chemin As String, fichier As String, titre As String
Dim wbk1 As Workbook, wbk2 As Workbook
Dim QuelFichier

Set wbk1 = ThisWorkbook

QuelFichier = Application.GetOpenFilename("Fichier Excel, *.xls;*.xlsx")
If QuelFichier = False Then Exit Sub

Set wbk2 = Workbooks.Open(QuelFichier)

'DIMENSION
Dim DerLigA As String
DerLigA = wbk1.Sheets("SEG").Range("A" & Rows.Count).End(xlUp).Row

Dim DerLigB As String
DerLigB = wbk2.Sheets("Segments").Range("A" & Rows.Count).End(xlUp).Row

'copie des données
wbk1.Sheets("SEG").Range("A" & (DerLigA + 1) & ":CP" & (DerLigA + (DerLigB - 1))).Value = wbk2.Sheets("Segments").Range("A2:CP" & DerLigB).Value

'DIMENSION
Dim DerLigC As String

DerLigC = wbk1.Sheets("VOYA").Range("A" & Rows.Count).End(xlUp).Row

Dim DerLigD As String
DerLigD = wbk2.Sheets("Voyages").Range("A" & Rows.Count).End(xlUp).Row

'copie des données
wbk1.Sheets("VOYA").Range("A" & (DerLigC + 1) & ":CP" & (DerLigC + (DerLigD - 1))).Value = wbk2.Sheets("Voyages").Range("A2:CP" & DerLigD).Value

wbk2.Close

MsgBox ("Données de validation intégrées !")
End If

End Sub

Bon courage

J'espère que j'ai bien compris ton problème

Bonne fin de journée

Rechercher des sujets similaires à "probleme import documents copie colle"