Incrémenter une colonne lors d'un enregistrement de données [Résolu/Fermé]

Signaler
Messages postés
5
Date d'inscription
jeudi 3 mars 2016
Statut
Membre
Dernière intervention
3 mars 2016
-
Messages postés
5
Date d'inscription
jeudi 3 mars 2016
Statut
Membre
Dernière intervention
3 mars 2016
-
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!

5 réponses

Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
493
Bonjour,

Si tu joignais la macro que tu as écrite, il serait plus facile de t'aider.

A+
Messages postés
5
Date d'inscription
jeudi 3 mars 2016
Statut
Membre
Dernière intervention
3 mars 2016

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
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
493
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+
Messages postés
5
Date d'inscription
jeudi 3 mars 2016
Statut
Membre
Dernière intervention
3 mars 2016

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?
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
493
Quels sont les noms des feuilles ?
Fichier "cahier de quart_post fuku.xls"; feuille ???
Fichier "tableau de suivi des travaux.xlsm"; feuille ???

A+
Messages postés
5
Date d'inscription
jeudi 3 mars 2016
Statut
Membre
Dernière intervention
3 mars 2016

fichier cahier de quart -> feuille: cahier de quart post fuku
fichier tableau de suivi des travaux -> feuille: feuil1


Merci
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
493
A tester

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+
Messages postés
5
Date d'inscription
jeudi 3 mars 2016
Statut
Membre
Dernière intervention
3 mars 2016

C'est parfait merci beaucoup pour ton aide,

Bonne journée