Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
XL 2019Récupération valeurs d'un fichier vers un autre vba
Bonsoir Quicksland,
Un essai en PJ à tester.
La macro à lancer est "Importer"
A noter qu'il y aura surement un problème de février année bissextile vers année non bissextile.
Bonsoir Quicksland,
Un essai en PJ à tester.
La macro à lancer est "Importer"
A noter qu'il y aura surement un problème de février année bissextile vers année non bissextile.
Bonsoir Quicksland,
Un essai en PJ à tester.
La macro à lancer est "Importer"
A noter qu'il y aura surement un problème de février année bissextile vers année non bissextile.
Bonsoir,
Dans l'ordre,
1- Par sécurité je vérifier que sur la feuille en E2 il y avait "Coût solide / Prestation" .
maintenant ce n'est plus le cas, donc ça ne pouvait pas marcher. J'ai remplacé par "Format".
2- Comme les colonnes sont vides, DL vaut 2, et avec C4:C2 ça ne marche pas.
J'ai rajouté :
VB:
If DL < 4 Then DL = 4
3- C'est inutile de recopier le code sur toutes les pages, c'est source d'erreur en cas de maintenance, on est sur d'oublier une page.
Donc dans chaque page j'ai mis :
Code:
Private Sub CommandButton2_Click()
Importer
End Sub
Et en macro classique :
Code:
Sub Importer()
Application.ScreenUpdating = False
NomFichier = "GESTION - POTS.xlsm"
FichierCourant = ThisWorkbook.Name
Workbooks.Open ThisWorkbook.Path & "\" & NomFichier
Workbooks(FichierCourant).Activate
For Each F In Worksheets
If Sheets(F.Name).[E2] = "Format" Then
With Workbooks(NomFichier).Sheets(F.Name)
DL = Sheets(F.Name).Range("E65500").End(xlUp).Row - 1
If DL < 4 Then DL = 4
.Range("C4:C" & DL).Copy
Sheets(F.Name).Range("C4:C" & DL).PasteSpecial xlPasteValues
.Range("E4:E" & DL).Copy
Sheets(F.Name).Range("E4:E" & DL).PasteSpecial xlPasteValues
.Range("F4:F" & DL).Copy
Sheets(F.Name).Range("F4:F" & DL).PasteSpecial xlPasteValues
.Range("G4:G" & DL).Copy
Sheets(F.Name).Range("G4:G" & DL).PasteSpecial xlPasteValues
.Range("H4:H" & DL).Copy
Sheets(F.Name).Range("H4:H" & DL).PasteSpecial xlPasteValues
End With
End If
Next F
Application.CutCopyMode = False
Workbooks(NomFichier).Close Savechanges:=False
End Sub
Bonsoir,
Dans l'ordre,
1- Par sécurité je vérifier que sur la feuille en E2 il y avait "Coût solide / Prestation" .
maintenant ce n'est plus le cas, donc ça ne pouvait pas marcher. J'ai remplacé par "Format".
2- Comme les colonnes sont vides, DL vaut 2, et avec C4:C2 ça ne marche pas.
J'ai rajouté :
VB:
If DL < 4 Then DL = 4
3- C'est inutile de recopier le code sur toutes les pages, c'est source d'erreur en cas de maintenance, on est sur d'oublier une page.
Donc dans chaque page j'ai mis :
Code:
Private Sub CommandButton2_Click()
Importer
End Sub
Et en macro classique :
Code:
Sub Importer()
Application.ScreenUpdating = False
NomFichier = "GESTION - POTS.xlsm"
FichierCourant = ThisWorkbook.Name
Workbooks.Open ThisWorkbook.Path & "\" & NomFichier
Workbooks(FichierCourant).Activate
For Each F In Worksheets
If Sheets(F.Name).[E2] = "Format" Then
With Workbooks(NomFichier).Sheets(F.Name)
DL = Sheets(F.Name).Range("E65500").End(xlUp).Row - 1
If DL < 4 Then DL = 4
.Range("C4:C" & DL).Copy
Sheets(F.Name).Range("C4:C" & DL).PasteSpecial xlPasteValues
.Range("E4:E" & DL).Copy
Sheets(F.Name).Range("E4:E" & DL).PasteSpecial xlPasteValues
.Range("F4:F" & DL).Copy
Sheets(F.Name).Range("F4:F" & DL).PasteSpecial xlPasteValues
.Range("G4:G" & DL).Copy
Sheets(F.Name).Range("G4:G" & DL).PasteSpecial xlPasteValues
.Range("H4:H" & DL).Copy
Sheets(F.Name).Range("H4:H" & DL).PasteSpecial xlPasteValues
End With
End If
Next F
Application.CutCopyMode = False
Workbooks(NomFichier).Close Savechanges:=False
End Sub
Ce site utilise des cookies pour personnaliser le contenu, adapter votre expérience et vous garder connecté si vous vous enregistrez.
En continuant à utiliser ce site, vous consentez à notre utilisation de cookies.