IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Macro - Maj suivi depuis un fichier excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Avril 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2017
    Messages : 4
    Par défaut Macro - Maj suivi depuis un fichier excel
    Bonjour,
    Je viens ici en dernier recours ...
    Je tente de m'approprier une macro pour mettre à jour un fichier de suivi depuis un fichier source qui évolue dans le temps.
    J'y suis parvenu en parti mais c'est completement satisfaisant.
    je veux que ma macro enrichisse mon fichier de suivi si la colonne AF de mon source est renseigné (si oui, elle me copie un certain nombre de cellule de la meme ligne) => ça, ça marche alleluia !
    Mon problème c'est qu'elle me copie qu'une seule ligne par recherche.
    exemple :
    la colonne AF peut contenir plusieurs fois "1", si c'est le cas je n'aurais que les informations du premier "1", je voudrais que cela copie l'ensemble des lignes contenant "1" en mettant en condition la colonne "K".
    Soit :
    Si AF non trouvé dans cible => copier les éléments
    Si AF trouvé dans cible mais "K" différent => copier aussi les éléments.
    J'espere que quelqu'un aura compris mon javanais et merci par avance aux personnes qui pourront me filer un coup de main.

    Voici la macro en l'état actuelle des choses :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    Sub MAJ_SUIVI_VIA_FICHIER_CLIENT() 
    Dim Path_name As String 
    Dim File_name As String 
    Dim Complete_File_name As String 
     
    'désactive la mise à jour de l'affichage 
    Application.ScreenUpdating = False 
     
    Sheets("Suivi Dépl new model V1").Select 
     
    'construit une date pour le nom du fichier d'écart 
    LaDate = Date 
    LeTableauDate = Split(Date, "/") 
    LaDate = LeTableauDate(0) & LeTableauDate(1) & LeTableauDate(2) 
     
    Path_name = ThisWorkbook.Path 
    LeFichierClient = Path_name & "\" & "Suivi des déploiements 2017.xlsm" 
    'LeFichierEcart = Path_name & "\" & "SUIVI_CMO_" & LaDate & ".xlsx" 
     
    'défini le nom du fichier de suivi (versionning) 
    LeNomFichierSuivi = ActiveWorkbook.Name 
     
    'ouvre le fichier client 
    Workbooks.Open Filename:=LeFichierClient 
     
     
     
     
     'Sélectionne le fichier du client 
     Windows("Suivi des déploiements 2017.xlsm").Activate 
     
    ' Selectionne la première cellule de la colonne "AF=BdC UO" 
    Range("A2").Select 
    ''intialise le compteur d'écart à 1 pour prendre en compte la ligne de titre 
    'CompteurEcart = 2 
     
     ' Boucle tant que pas vide 
     Do While Not (IsEmpty(ActiveCell)) 
     
    ' 'sélectionne le fichier de suivi 
    ' Windows(LeNomFichierSuivi).Activate 
     
     'lecture de la valeur du BDCU 
     Debug.Print Cells(ActiveCell.Row, 32).Value 
     LaValeurBDCU = Cells(ActiveCell.Row, 32).Value 
     LaValeurPERIMETRE = Cells(ActiveCell.Row, 34).Value 
     Debug.Print "Le périmètre est " & LaValeurPERIMETRE 
     
    If LaValeurPERIMETRE = "CC" Then 
     
    ' 'Sélectionne le fichier du client 
    ' Windows("Suivi des déploiements 2017.xlsm").Activate 
     'active le fichier de suivi 
     Windows(LeNomFichierSuivi).Activate 
     
     'lance la recherche de la valeur dans la colonne "AF" 
     Range("N1").Select 
     Columns("N:N").Select 
     
     Set LaRecherche = Columns("N:N").Find(What:=LaValeurBDCU, After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ 
     True, SearchFormat:=False) 
     
     If LaRecherche Is Nothing Then 'test si la recherche à donné un résultat 
     'pas trouvé 
     'alors nous ajoutont la ligne dans le fichier de suivi 
     Debug.Print "ajout de ligne dans suivi" 
     'CompteurEcart = CompteurEcart + 1 
     'Sélectionne le fichier du client 
     Windows("Suivi des déploiements 2017.xlsm").Activate 
     
     'Lire les champs A,D,P,N,G,H,I,S 
     'normalement la cellule active est dans la colonne G 
     LaLigneEnCours = ActiveCell.Row 
     CLIENT_Type_OP = Range("A" & LaLigneEnCours).Value 
     CLIENT_RNE = Range("D" & LaLigneEnCours).Value 
     CLIENT_Tranche = Range("P" & LaLigneEnCours).Value 
     CLIENT_Type_équipement = Range("J" & LaLigneEnCours).Value 
     CLIENT_Mois_souhaité_de_déploiement = Range("N" & LaLigneEnCours).Value 
     CLIENT_Nom = Range("G" & LaLigneEnCours).Value 
     CLIENT_VILLE = Range("H" & LaLigneEnCours).Value 
     CLIENT_DPT = Range("I" & LaLigneEnCours).Value 
     CLIENT_Qte = Range("L" & LaLigneEnCours).Value 
     CLIENT_Nature = Range("K" & LaLigneEnCours).Value 
     CLIENT_reseau = Range("M" & LaLigneEnCours).Value 
     CLIENT_NUM_BdC_MAT = Range("S" & LaLigneEnCours).Value 
     CLIENT_BDCUO = LaValeurBDCU 
     'active le fichier de suivi 
     Windows(LeNomFichierSuivi).Activate 
     
     'insert une nouvelle ligne dans le fichier de suivi 
     Rows("3:3").Select 
     Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 
     
     'sélectionne la ligne active 
     LaLigneActive = ActiveCell.Row 
     
     'met à jour les valeurs puis met en jaune les modifications 
     Range("A" & LaLigneActive).Value = CLIENT_Type_OP 
     Range("B" & LaLigneActive).Value = CLIENT_RNE 
     Range("C" & LaLigneActive).Value = CLIENT_Tranche 
     Range("D" & LaLigneActive).Value = CLIENT_Mois_souhaité_de_déploiement 
     Range("E" & LaLigneActive).Value = CLIENT_Nom 
     Range("F" & LaLigneActive).Value = CLIENT_VILLE 
     Range("G" & LaLigneActive).Value = CLIENT_DPT 
     Range("H" & LaLigneActive).Value = CLIENT_NUM_BdC_MAT 
     Range("I" & LaLigneActive).Value = CLIENT_Type_équipement 
     Range("J" & LaLigneActive).Value = CLIENT_Nature 
     Range("K" & LaLigneActive).Value = CLIENT_Qte 
     Range("L" & LaLigneActive).Value = CLIENT_reseau 
     Range("N" & LaLigneActive).Value = CLIENT_BDCUO 
     
     'sélectionne la ligne 
     Range("A" & LaLigneActive & ":" & "G" & LaLigneEnCours).Select 
     
     'met en jaune 
     With Selection.Interior 
     .Pattern = xlSolid 
     .PatternColorIndex = xlAutomatic 
     .Color = 65535 
     .TintAndShade = 0 
     .PatternTintAndShade = 0 
     End With 
     'réinitialise la variable 
     LaLigneEnCours = "" 
     LaLigneActive = "" 
     
     
     
     Else 
     'trouvé 
     Debug.Print "trouvé donc pas d'ajout de ligne" 
     
     
     End If 
     
    End If ' LaValeurPERIMETRE = "CC" 
     'Sélectionne le fichier du client 
     Windows("Suivi des déploiements 2017.xlsm").Activate 
     
     ' Passe à la ligne suivante 
     Selection.Offset(1, 0).Select 
     Loop 
     
    ''sauvegarde le fichier 
    'ActiveWorkbook.Save 
    'ActiveWorkbook.Close 
     
     
    'fermeture du fichier client sans enregistrer 
    Windows("Suivi des déploiements 2017.xlsm").Activate 
    ActiveWorkbook.Close False 
     
    'active le fichier de suivi 
    Windows(LeNomFichierSuivi).Activate 
     
     
     
    'active la mise à jour de l'affichage 
    Application.ScreenUpdating = True 
     
    MsgBox "Mise à jour terminée" 
     
    End Sub

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 680
    Par défaut
    Bonjour,

    Pour plus de lisibilité met ton code entre balise code (bouton #)

    la colonne AF peut contenir plusieurs fois "1", si c'est le cas je n'aurais que les informations du premier "1", je voudrais que cela copie l'ensemble des lignes contenant "1" en mettant en condition la colonne "K".
    Tu devrais jeter un oeil au filtres avancés: http://philippetulliez.developpez.co...dvancedfilter/

  3. #3
    Candidat au Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Avril 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2017
    Messages : 4
    Par défaut
    Navré - Je viens de faire la modification pour utiliser les balises, c'est effectivement plus claire !

    Merci pour le lien, je vais voir ce que je peux y trouver

    Citation Envoyé par halaster08 Voir le message
    Bonjour,

    Pour plus de lisibilité met ton code entre balise code (bouton #)


    Tu devrais jeter un oeil au filtres avancés: http://philippetulliez.developpez.co...dvancedfilter/

  4. #4
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour !

        cf règles de ce forum ‼    

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Stockholm, London, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  5. #5
    Candidat au Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Avril 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2017
    Messages : 4
    Par défaut
    J'ai rectifié le tir ...

    Citation Envoyé par Marc-L Voir le message
    Bonjour !

        cf règles de ce forum ‼    

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Stockholm, London, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

Discussions similaires

  1. Macro VBA de création de PDF automatique depuis un fichier EXCEL
    Par virgie31 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/11/2011, 11h34
  2. [SSIS] Data loading depuis multiples fichiers Excel et worksheets
    Par finarfin95 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 14/09/2007, 12h00
  3. Execution macro lors d'une ouverture fichier excel
    Par fmris dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/10/2006, 12h00
  4. Creer un pdf depuis un fichier Excel
    Par calimero91 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 29/06/2006, 14h23
  5. activation macro lors d'une ouverture fichier Excel
    Par mirumoto dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/05/2005, 15h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo