Incrémenter une colonne lors d'un enregistrement de données

Résolu
Achab50100 Messages postés 5 Statut Membre -  
Achab50100 Messages postés 5 Statut Membre -
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

  1. Gyrus Messages postés 3360 Statut Membre 526
     
    Bonjour,

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

    A+
    0
  2. Achab50100 Messages postés 5 Statut Membre
     
    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
    0
  3. Gyrus Messages postés 3360 Statut Membre 526
     
    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+
    0
    1. Achab50100 Messages postés 5 Statut Membre
       
      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?
      0
  4. Gyrus Messages postés 3360 Statut Membre 526
     
    Quels sont les noms des feuilles ?
    Fichier "cahier de quart_post fuku.xls"; feuille ???
    Fichier "tableau de suivi des travaux.xlsm"; feuille ???

    A+
    0
    1. Achab50100 Messages postés 5 Statut Membre
       
      fichier cahier de quart -> feuille: cahier de quart post fuku
      fichier tableau de suivi des travaux -> feuille: feuil1


      Merci
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Gyrus Messages postés 3360 Statut Membre 526
     
    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+
    0
    1. Achab50100 Messages postés 5 Statut Membre
       
      C'est parfait merci beaucoup pour ton aide,

      Bonne journée
      0