Incrémenter une colonne lors d'un enregistrement de données
Résolu
Achab50100
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
Achab50100 Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
Achab50100 Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je débute sous VBA et du coup je bloque sur une macro.
En effet, je souhaiterai écrire une macro qui quand on appuie sur un bouton sur un fichier excel A, copie les données dans une seule colonne sur un fichier B. jusque là pas de soucis j'arrive à m'en sortir et la macro tourne plutôt bien. Ensuite j'aimerai que lorsque je reclique sur ce bouton, les données du fichier A soient copiées dans la colonne suivante. (le but de la manoeuvre étant de créer un suivi de chantier par jour. le fichier B regroupant les données sur toute la durée du chantier et le fichier A permet un suivi journalier).
Mon blocage se situe au niveau du passage à la colonne +1 lorsque j'enregistre mes données dans le fichier B.
Merci pour votre aide!
Je débute sous VBA et du coup je bloque sur une macro.
En effet, je souhaiterai écrire une macro qui quand on appuie sur un bouton sur un fichier excel A, copie les données dans une seule colonne sur un fichier B. jusque là pas de soucis j'arrive à m'en sortir et la macro tourne plutôt bien. Ensuite j'aimerai que lorsque je reclique sur ce bouton, les données du fichier A soient copiées dans la colonne suivante. (le but de la manoeuvre étant de créer un suivi de chantier par jour. le fichier B regroupant les données sur toute la durée du chantier et le fichier A permet un suivi journalier).
Mon blocage se situe au niveau du passage à la colonne +1 lorsque j'enregistre mes données dans le fichier B.
Merci pour votre aide!
A voir également:
- Incrémenter une colonne lors d'un enregistrement de données
- Fuite données maif - Guide
- Déplacer une colonne excel - Guide
- Trier une colonne excel - Guide
- Colonne word - Guide
- Formule somme excel colonne - Guide
5 réponses
Voici la macro qui permet de copier les données:
Sub macrotest()
'
' macrotest Macro
'
Application.ScreenUpdating = False 'pas de rafraichissement
'
Range("D30:D33").Select
Selection.Copy
Windows("tableau de suivi des travaux.xlsm").Activate
Range("B36").Select
ActiveSheet.Paste
Windows("cahier de quart_post fuku.xls").Activate
Range("A62:A74").Select
Application.CutCopyMode = False
Selection.Copy
Windows("tableau de suivi des travaux.xlsm").Activate
Range("A5").Select
ActiveSheet.Paste
Windows("cahier de quart_post fuku.xls").Activate
Range("B62:B74").Select
Application.CutCopyMode = False
Selection.Copy
Windows("tableau de suivi des travaux.xlsm").Activate
Range("B5").Select
ActiveSheet.Paste
Windows("cahier de quart_post fuku.xls").Activate
Range("G2").Select
Application.CutCopyMode = False
Selection.Copy
Windows("tableau de suivi des travaux.xlsm").Activate
Range("B4").Select
ActiveSheet.Paste
Windows("cahier de quart_post fuku.xls").Activate
Range("G30:G31").Select
Application.CutCopyMode = False
Selection.Copy
Windows("tableau de suivi des travaux.xlsm").Activate
Range("B32:B33").Select
ActiveSheet.Paste
Windows("cahier de quart_post fuku.xls").Activate
Range("E62:E74").Select
Application.CutCopyMode = False
Selection.Copy
Windows("tableau de suivi des travaux.xlsm").Activate
Range("A74").Select
ActiveSheet.Paste
Windows("cahier de quart_post fuku.xls").Activate
Range("C77").Select
Application.CutCopyMode = False
Selection.Copy
Windows("tableau de suivi des travaux.xlsm").Activate
Range("B56").Select
ActiveSheet.Paste
Windows("cahier de quart_post fuku.xls").Activate
Range("D77").Select
Application.CutCopyMode = False
Selection.Copy
Windows("tableau de suivi des travaux.xlsm").Activate
Range("A56").Select
ActiveSheet.Paste
Windows("cahier de quart_post fuku.xls").Activate
Range("C80").Select
Application.CutCopyMode = False
Selection.Copy
Windows("tableau de suivi des travaux.xlsm").Activate
Range("B65").Select
ActiveSheet.Paste
Windows("cahier de quart_post fuku.xls").Activate
Range("D80").Select
Application.CutCopyMode = False
Selection.Copy
Windows("tableau de suivi des travaux.xlsm").Activate
Range("A65").Select
ActiveSheet.Paste
Windows("cahier de quart_post fuku.xls").Activate
Range("F62:F74").Select
Application.CutCopyMode = False
Selection.Copy
Windows("tableau de suivi des travaux.xlsm").Activate
Range("B74").Select
ActiveSheet.Paste
Windows("cahier de quart_post fuku.xls").Activate
End Sub
et la macro qui me permet de copier mon fichier A au format PDF et de vider les cases de données:
Sub Macro2()
'
' Macro2 Macro
'
Call cahierdequart2 'lancement de la macro d enregistrement des données
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ActiveWorkbook.Path & "\" & "cahier de quart" & "_" & Format(Date, "dd-mm-yyyy") _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True
Range("D30:D33").Select
Selection.ClearContents
Range("B62:B74").Select
Selection.ClearContents
Range("F62:F74").Select
Selection.ClearContents
Range("C77").Select
Selection.ClearContents
Range("C80").Select
Selection.ClearContents
Windows("tableau de suivi des travaux.xlsm").Activate
ActiveWorkbook.Save
End Sub
Sub macrotest()
'
' macrotest Macro
'
Application.ScreenUpdating = False 'pas de rafraichissement
'
Range("D30:D33").Select
Selection.Copy
Windows("tableau de suivi des travaux.xlsm").Activate
Range("B36").Select
ActiveSheet.Paste
Windows("cahier de quart_post fuku.xls").Activate
Range("A62:A74").Select
Application.CutCopyMode = False
Selection.Copy
Windows("tableau de suivi des travaux.xlsm").Activate
Range("A5").Select
ActiveSheet.Paste
Windows("cahier de quart_post fuku.xls").Activate
Range("B62:B74").Select
Application.CutCopyMode = False
Selection.Copy
Windows("tableau de suivi des travaux.xlsm").Activate
Range("B5").Select
ActiveSheet.Paste
Windows("cahier de quart_post fuku.xls").Activate
Range("G2").Select
Application.CutCopyMode = False
Selection.Copy
Windows("tableau de suivi des travaux.xlsm").Activate
Range("B4").Select
ActiveSheet.Paste
Windows("cahier de quart_post fuku.xls").Activate
Range("G30:G31").Select
Application.CutCopyMode = False
Selection.Copy
Windows("tableau de suivi des travaux.xlsm").Activate
Range("B32:B33").Select
ActiveSheet.Paste
Windows("cahier de quart_post fuku.xls").Activate
Range("E62:E74").Select
Application.CutCopyMode = False
Selection.Copy
Windows("tableau de suivi des travaux.xlsm").Activate
Range("A74").Select
ActiveSheet.Paste
Windows("cahier de quart_post fuku.xls").Activate
Range("C77").Select
Application.CutCopyMode = False
Selection.Copy
Windows("tableau de suivi des travaux.xlsm").Activate
Range("B56").Select
ActiveSheet.Paste
Windows("cahier de quart_post fuku.xls").Activate
Range("D77").Select
Application.CutCopyMode = False
Selection.Copy
Windows("tableau de suivi des travaux.xlsm").Activate
Range("A56").Select
ActiveSheet.Paste
Windows("cahier de quart_post fuku.xls").Activate
Range("C80").Select
Application.CutCopyMode = False
Selection.Copy
Windows("tableau de suivi des travaux.xlsm").Activate
Range("B65").Select
ActiveSheet.Paste
Windows("cahier de quart_post fuku.xls").Activate
Range("D80").Select
Application.CutCopyMode = False
Selection.Copy
Windows("tableau de suivi des travaux.xlsm").Activate
Range("A65").Select
ActiveSheet.Paste
Windows("cahier de quart_post fuku.xls").Activate
Range("F62:F74").Select
Application.CutCopyMode = False
Selection.Copy
Windows("tableau de suivi des travaux.xlsm").Activate
Range("B74").Select
ActiveSheet.Paste
Windows("cahier de quart_post fuku.xls").Activate
End Sub
et la macro qui me permet de copier mon fichier A au format PDF et de vider les cases de données:
Sub Macro2()
'
' Macro2 Macro
'
Call cahierdequart2 'lancement de la macro d enregistrement des données
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ActiveWorkbook.Path & "\" & "cahier de quart" & "_" & Format(Date, "dd-mm-yyyy") _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True
Range("D30:D33").Select
Selection.ClearContents
Range("B62:B74").Select
Selection.ClearContents
Range("F62:F74").Select
Selection.ClearContents
Range("C77").Select
Selection.ClearContents
Range("C80").Select
Selection.ClearContents
Windows("tableau de suivi des travaux.xlsm").Activate
ActiveWorkbook.Save
End Sub
Je dois dire que ça part mal !
Tu indiquais précédemment que la copie les données du fichier A se fait dans une seule colonne du fichier B.
Ton code montre que cette copie se fait dans 2 colonnes du fichier B (colonnes A et B).
Si tu incrémentes d'une colonne à chaque clic sur le bouton, tu vas écraser les données précédentes.
A+
Tu indiquais précédemment que la copie les données du fichier A se fait dans une seule colonne du fichier B.
Ton code montre que cette copie se fait dans 2 colonnes du fichier B (colonnes A et B).
Si tu incrémentes d'une colonne à chaque clic sur le bouton, tu vas écraser les données précédentes.
A+
en effet, il y a des données qui partent dans la colonne A mais c'est valeur ne doivent pas être déplacé de colonnes en colones. seules les valeurs copiées vers la colonne B doivent se déplacer sur la colonne +1. en gros les valeurs de la colonne A sont les noms des entreprises, des données climatiques etc et les valeurs de la conne B sont les variables qui y sont affectées (nombre d'employés, température en degrès etc).
Je ne sais pas si je suis assez clair?
Je ne sais pas si je suis assez clair?
Quels sont les noms des feuilles ?
Fichier "cahier de quart_post fuku.xls"; feuille ???
Fichier "tableau de suivi des travaux.xlsm"; feuille ???
A+
Fichier "cahier de quart_post fuku.xls"; feuille ???
Fichier "tableau de suivi des travaux.xlsm"; feuille ???
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
A tester
A+
Sub macrotest()
Dim WkS As Workbook, WkC As Workbook
Dim WsS As Worksheet, WsC As Worksheet
Dim ColonneC As Long
Set WkS = Workbooks("cahier de quart_post fuku.xls")
Set WkC = Workbooks("tableau de suivi des travaux.xlsm")
Set WsS = WkS.Worksheets("cahier de quart post fuku")
Set WsC = WkC.Worksheets("Feuil1")
ColonneC = WsC.Cells(4, Columns.Count).End(xlToLeft).Column + 1
Application.ScreenUpdating = False
WsS.Range("D30:D33").Copy WsC.Cells(36, ColonneC)
WsS.Range("A62:A74").Copy WsC.Range("A5")
WsS.Range("B62:B74").Copy WsC.Cells(5, ColonneC)
WsS.Range("G2").Copy WsC.Cells(4, ColonneC)
WsS.Range("G30:G31").Copy WsC.Cells(32, ColonneC)
WsS.Range("E62:E74").Copy WsC.Range("A74")
WsS.Range("C77").Copy WsC.Cells(56, ColonneC)
WsS.Range("D77").Copy WsC.Range("A56")
WsS.Range("C80").Copy WsC.Cells(65, ColonneC)
WsS.Range("D80").Copy WsC.Range("A65")
WsS.Range("F62:F74").Copy WsC.Cells(74, ColonneC)
Set WkS = Nothing: Set WkC = Nothing: Set WsS = Nothing: Set WsC = Nothing
End Sub
A+