Bonjour à tous,
Nouveau en programmation vba pour le boulot, je dois créer un outil qui va récupérer des données dans un autre classeur.
Avec mon code ci dessous, il calcule la dernière ligne dans ma feuille actuelle et non celle qu'il devrait normalement ouvrir.
Merci pour vos éclaircissement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 Private Sub CommandButton1_Click() ' Déclaration des variables Dim xlApp As New Excel.Application ' déclarer Public si dans un module Dim xlBook As New Excel.Workbook Dim xlSheet As New Excel.Worksheet Dim year As Long Dim chemin As String Dim DL, DL2 As Long ' Récupération de l'année en cours year = Range("A1").Value chemin = "\\Ficsm02\ec_drh_dsi_cadres\Direction de soins\POOL DE SUPPLEANCE (EN CONSTRUCTION)\BESOINS DES POLES\" 'Ouvrir le classeur dont on a besoin avec tout le chemin... Set xlBook = xlApp.Workbooks.Open(chemin & year & "\" & CommandButton1.Caption & ".xlsm") Set xlSheet = xlBook.Sheets(TextBox1.Value) ' si on veut utiliser une feuille en particulier 'On copie la plage désirée With xlSheet DL = Range("D" & Rows.Count).End(xlUp).Row MsgBox ("La dernière ligne est " & DL & "!") .Range("B4:O" & DL).Copy End With ' On revient sur notre classeur ActiveSheet.Select ' On définit la dernière ligne libre DL2 = Range("D65536").End(xlUp).Row + 1 Range("B" & DL2).PasteSpecial Paste:=xlPasteValues Application.ScreenUpdating = True 'affiche les rafraîchissements d'écran MsgBox "Fin du traitement des données !" 'message
Bonne journée,
Partager