Copier des données dans un fichier modèle

nakadon

XLDnaute Occasionnel
Bonsoir,

J'ai un fichier Excel « Liste » et un autre fichier « FinMois ».

Dans chaque fichier, je crée chaque mois un onglet correspondant aux données du mois.
Pour un mois donné, les données sources se trouvent dans le fichier Liste d'où je dois extraire uniquement quelques informations pour créer le mois correspondant dans le fichier « FinMois » (au format indiqué dans l'exemple). Ne figure dans « FinMois » que les personnes avec OUI dans la colonne « valeur » du fichier « Liste ».

Ma question est la suivante, est-ce qu'il est possible par macro de créer automatiquement le mois correspondant dans « FinMois » depuis « Liste » en cliquant sur un bouton par exemple ?


Merci d'avance pour votre aide.
 

Pièces jointes

  • Liste.xls
    19.5 KB · Affichages: 69
  • Liste.xls
    19.5 KB · Affichages: 62
  • Liste.xls
    19.5 KB · Affichages: 74
  • FinMois.xls
    20 KB · Affichages: 84
  • FinMois.xls
    20 KB · Affichages: 81
  • FinMois.xls
    20 KB · Affichages: 80
Dernière édition:

nakadon

XLDnaute Occasionnel
Re : Copier des données dans un fichier modèle

J'ai essayé, mais ça ne marche pas !
En effet le problème est un peu plus compliqué (enfin, pour moi).
Quand je suis dans le fichier "Liste", pour un mois donné, je souhaite créer automatiquement l'onglet de ce mois dans la feuille "FinMois" si l'onglet n'existe pas. De plus, il ne s'agit pas de copier toute la ligne, uniquement quelques informations pour les lignes qui ont un "OUI" dans la colonne "valeur" (voir exemple ci-dessus).

Si vous pouvez m'aider
Merci d'avance.
 
Dernière édition:

keepcool183

XLDnaute Occasionnel
Re : Copier des données dans un fichier modèle

Bonsoir Nakadon,

Je te propose éventuellement de passer par des formules (les onglets ne se créeront pas automatiquement) mais au moins tu n'auras qu'à recopier les formules.

Imbriquer une formule SI et index equiv ou RechercheV devrais faire l'affaire en attendant qu'un connaisseur en VBA te donne le code approprié :)

@+
 

suistrop

XLDnaute Impliqué
Re : Copier des données dans un fichier modèle

salut,
a essayer :
Code:
Sub cartman()
Application.ScreenUpdating = False
'on commence a remplir l onglet fin de mois a partir de la troisieme lignes
j = 3
Sheets("Feuil2").Select
'on habille le tableau pour la fin de mois
Cells(j, 1) = "N°"
Cells(j, 2) = "Nom"
Cells(j, 3) = "Prenom"
Cells(j, 5) = "nature Test"
Cells(j, 6) = "Observation"
Cells(j, 7) = "Heure"

'on parcours notre liste de n°1
Sheets("Feuil1").Select
For i = 2 To Range("A65536").End(xlUp).Row
'on test si la valeur est oui
    If Cells(i, 6) = "OUI" Then
        'si c est oui on applique le truc que l on veut
        Sheets("Feuil1").Select
        'on récupere les info
        num = Cells(i, 1)
        nom = Cells(i, 2)
        pren = Cells(i, 3)
        nat = Cells(i, 4)
        obs = Cells(i, 5)
        heur = Cells(i, 7)
        'je me met sur la feuille 2 pour faire la fin du mois
        Sheets("Feuil2").Select
        'on remet les donnés ici j est l indice des lignes de la feuilles mois
        j = j + 1
        Cells(j, 1) = num
        Cells(j, 2) = nom
        Cells(j, 3) = pren
        Cells(j, 4) = nat
        Cells(j, 5) = obs
        Cells(j, 6) = heur
        Total_h = Total_h + heur
        Cells(j, 7) = Cells(j, 6) * 5.25
        total_m = total_m + Cells(j, 7)
    End If
    Sheets("Feuil1").Select
    'nombre de personne a payer = j -3 car on a initialise j à 3
    nb_personne = j - 3
Next i
Sheets("Feuil2").Select
'on met le reste apres
j = j + 1
'total
Cells(j, 5) = "total"
Cells(j, 6) = Total_h
Cells(j, 7) = total_m
Cells(j + 3, 1) = "Nombre de personne " & nb_personne

Application.ScreenUpdating = True
End Sub
Apres à toi de t amuser pour le faire à ta guise !! mettre du gras des couleurs en fct de l evaluation du nombre d heure du montant ....


ps : j ai considéré la liste sans doublons, si un doublons se présente il est traité comme un nouveau !!
 

Pièces jointes

  • Liste_suistrop.xls
    42.5 KB · Affichages: 74
Dernière édition:

vbacrumble

XLDnaute Accro
Re : Copier des données dans un fichier modèle

Bonsoir

suistrop
Histoire d'avoir moins de lignes dans le code, une suggestion :
Code:
j = 3
Sheets("Feuil2").Range(Cells(j, 1), _
Cells(j, 7)) = _
Array("N°", "Nom", "Prenom", " ", "nature Test", "Observation", "Heure")

A+
 

nakadon

XLDnaute Occasionnel
Re : Copier des données dans un fichier modèle

Magnifique pour le filtre avec "OUI" dans la colonne valeur, ça marche.

Par contre comment faire pour que le résultat soit plutôt dans un autre classeur "FinMois.xls" par exemple et non dans un onglet du même classeur.
Je n'arrive pas à réaliser cette opération.

D'avance merci.
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : Copier des données dans un fichier modèle

Bonjour à tous
Code:
Sub Macro1()
    ActiveSheet.Move
End Sub
crée un nouveau classeur contenant uniquement la feuille active au moment de l'exécution du code.
C'est un début...​
Bonne journée !
ROGER2327
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa