Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
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 <4Then 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 <4Then 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
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD