Microsoft 365 Workbook copy workbook

dubarre

XLDnaute Occasionnel
Bonjour à tous

Je viens vers vous car j’ai un petit problème avec le code suivant :

VB:
Private Sub Workbook_Open()

    Sheets("BDDTableaux").Select
    Cells.Select
    Selection.Delete Shift:=xlUp
    ChDir _
        "C:\Users\dubdu\Bureau"
    Workbooks.Open Filename:= _
        "C:\Users\dubdu\Bureau\Classeur1.xlsm"
    Sheets("BDDtableaux").Select
    Cells.Select
    Selection.Copy

    Windows("Classeur2.xlsm").Activate
    Sheets("Copy_BDDtableaux").Select
    Cells.Select
    ActiveSheet.Paste
    Range("A1").Select
    Windows("Gestion_Tableaux_v003.xlsm").Activate
    ActiveWindow.Close
'
End Sub


je m’explique en fait j’ai fait un enregistrement de macro pour essayer de comprendre comment ça fonctionne j’ai besoin dans l’exemple que les données qui sont

dans le classeur 1 feuilles1 soit copier
dans le classeur 2 des son ouverture 'Sheets("Copy_BDDtableaux").Select

Sachant que le classeur 1 lui est fermé


pouvez-vous m’aider s’il vous plaît pour pouvoir construire ce code correctement et que cela fonctionne je n’arrive pas à trouver la solution j’ai besoin que ça se fasse automatiquement s’il vous plaît merci d’avance
 

Pièces jointes

  • Classeur1.xlsm
    8.9 KB · Affichages: 11
  • Classeur2.xlsm
    26 KB · Affichages: 3

dubarre

XLDnaute Occasionnel
Bonjour,

Après plusieurs recherches voilà le code que j'ai pu trouver qui fonctionne je le partage pour d'autres personnes si besoin.

VB:
Sub Rempli_listview()

' -- Identification des variables
Dim ws As Worksheet
Dim rg As Range
Dim i As Integer
Dim j As Integer

' -- Initialisation des variables
Set ws = ThisWorkbook.Sheets("BD")      'Nom de l'onglet contenant nos données
Set rg = ws.Range("refTab")             'Notre cellule de référence de notre tableau

' -- Construction du tableau
With ufPieces.ListView1             'Nous travaillons avec notre Listview "lvPieces" dans notre userform
' -- Ajout des colonnes
For i = 1 To 7          '7 colonnes à ajouter
'Ajouter une colonne en spécifiant le nom de l'entête seulement, largeur par défaut
'les titres sont sur la même ligne que notre référence (rg)
        .ColumnHeaders.Add , , rg.Offset(0, i - 1)
Next i

' -- Ajouter les éléments de la 1re colonne
For i = 1 To 5
'Ajouter un élément en spécifiant la valeur seulement
'les éléments sont dans la même colonne que notre référence (rg)
        .ListItems.Add , , rg.Offset(i, 0)
Next i

' -- Ajouter les sous-éléments
For i = 1 To 5          'Nous bouclons sur les 5 éléments (lignes)
For j = 1 To 6      'Nous bouclons sur les 6 colonnes
'Ajouter un sous-élément en spéciant la valeur seulement
            .ListItems(i).ListSubItems.Add , , rg.Offset(i, j)
Next j
Next i

' -- Spécifier l'affichage du Listview en mode "Détails"
    .View = lvwReport

End With

End Sub
 

zebanx

XLDnaute Accro
Bonjour Dubarre, le forum

A vous de changer les paramètres mais cela semble fonctionner aussi entre le feeder et le master sur la feuille 1.
Remarque :
- Dans "this workbook" utilisation de workbook_open pour rafraichir automatiquement
- Module 1 :
> procédure getrange qui contient le code principal pour actualiser les données sur une plage définie
> utilisation d'un "cleaner" pour les 0

Xl-ment
zebanx

NB : Je trouve toujours dangereux (dans le sens de piste d'audit tracable à un instant "t") de mettre à jour des données sans le faire "manuellement" (bouton "go" donc qui ne sert plus mais que perso je continuerai à utiliser plutot que le rafraichissement automatique)
 

Pièces jointes

  • feeder.xlsm
    9.4 KB · Affichages: 3
  • master.xlsm
    20.1 KB · Affichages: 4
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 211
Messages
2 086 299
Membres
103 172
dernier inscrit
Aurelyan