Copier coller fichier dans Thisworkbook

Bonjour tout le monde,

Jaurais besoin de votre aide s'il vous plait! je ne trouve pas la solution a mon problème.

J'ai créé un fichier qui a terme me permet de selectionner un fichier, de copier le fichier selectionné de coller le résultat dans la feuille "Ancien" du fichier origine sous la barre de titre en ligne 9 puis refermer le fichier selectionné.

Pour faire le test, il faut ouvrir le fichier "Test", sur la feuille "Menu", il faut cliquer sur le bouton "Test", une fenêtre s'ouvre pour determiner le fichier à copier, choisir mon deuxième fichier " Fichier a selectionner", puis le reste se fait tout seul!

Mon problème est que la partie que je veux copier et sous la barre des titres, donc sous la ligne 9, hors mon code copie les lignes 1 à 10.

par contre les lignes sont collées au bon endroit.

Ca ne doit pas être grand chose, mais je sèche completement.

Pouvez vous me filer un petit coup de main??

EDIT: Ci dessous le code que j'ai mis dans le fichier:

Private Sub CommandButton1_Click()

'MsgBox ("Selectionner l'ANCIEN fichier a comparer")
Application.Dialogs(xlDialogOpen).Show

DernLigne = Range("B" & Rows.Count).End(xlUp).Row

ActiveSheet.Range("B10:F" & DernLigne).Copy ThisWorkbook.Sheets("Ancien").Range("B10")

Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.DisplayAlerts = True

Sheets("Ancien").Activate

End Sub

Merci d'avance.

26test.xlsm (20.62 Ko)

Bonjour,

Le problème est que ta macro est dans le Private module de la feuille "Menu" donc VBA considère que la macro travaille sur la feuille "Menu" (et non pas sur la feuille active..)

Même si tu ouvres 10 fichiers tu travailleras toujours sur la feuille "Menu" à moins de spécifier une autre feuille...

La macro corrigée :

Private Sub CommandButton1_Click()
Dim DernLigne%
Application.Dialogs(xlDialogOpen).Show

With ActiveSheet
   DernLigne = .Range("B" & .Rows.Count).End(xlUp).Row
   .Range("B10:F" & DernLigne).Copy ThisWorkbook.Sheets("Ancien").Range("B10")
End With
Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.DisplayAlerts = True

Sheets("Ancien").Activate

End Sub

Nota : Tu aurais pu également créer ta macro dans un module "standart" (Module 1)

Sub galopin()
Dim DernLigne%
Application.Dialogs(xlDialogOpen).Show
DernLigne = Range("B" & Rows.Count).End(xlUp).Row
ActiveSheet.Range("B10:F" & DernLigne).Copy ThisWorkbook.Sheets("Ancien").Range("B10")
Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.DisplayAlerts = True
Sheets("Ancien").Activate
End Sub

... Et l'appeler depuis ton bouton :

Private Sub CommandButton1_Click()
   galopin
End Sub

A+

Merci beaucoup pour ton aide!!

Ca marche à la perfection!! de plus tu as repondu a une question que je n'ai meme pas posée et sur laquelle je galerais depuis un moment. un bouton qui permet de lancer mon module d'une autre feuille!! c'est simple, mais je ne trouvais pas.

Juste une petite question si tu veux bien. A quoi sert le % après dim dernligne???

Merci beaucoup.

bonjour,

% est l'équivalent de As Integer

A+

Ahh ok! Merci!

Bonne continuation.

@ +

Rechercher des sujets similaires à "copier coller fichier thisworkbook"