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 qui fait la mise à jour d'un fichier excel a partir d'un autre en réseau


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Macro qui fait la mise à jour d'un fichier excel a partir d'un autre en réseau
    Bonjour,
    Je veux bien développer une macro qui fait la mise à jour d'un fichier excel "local" à partir d'un autre en réseau et qui me permet d'ajouter les nouvelles lignes publiées dans ce fichier en réseau et par contre supprimé les lignes qui se trouve dans le fichier local par contre ils n'existent plus dans le fichier en réseau.
    j'ai déjà un petit programme ci-dessous mais il ne fonctionne pas beaucoup de problèmes d’exécution.

    Merci d'avance de proposer des corrections ou d'autres solutions si possible.


    "
    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
    Sub essai()
    Dim DerSc As Long, WSource As Workbook, FSource As Worksheet
    Dim derMaj As Long, WMaj As Workbook, FMaj As Worksheet, FC As String
    Dim x As Long
    Application.ScreenUpdating = False
    Set WSource = Workbooks.Open(Filename:="C:\Users\ssaddi\Desktop\REQUETEGIR.xls")
    Set FSource = WSource.Sheets("REQ")
    Set FMaj = WMaj.Sheets("feuil1")
    Set WMaj = Workbooks("fichier_maj.xls")
     
    'si les ref sont en B dans les deux fichiers
    DerSc = FSource.Range("B" & FSource.Rows.Count).End(xlUp).Row 'dernière ligne du fichier source
    derMaj = FMaj.Range("B" & FMaj.Rows.Count).End(xlUp).Row 'dernière ligne du fichier source
    'les données du fichier "maj" commencent en B2
    'une colonne temporaire
    FC = "=NB.SI(" & "'[" & WSource.Name & "]" & FSource.Name & "'!$B$2:$B$" & DerSc & ";B2)"
    FMaj.Range("F2").FormulaLocal = FC
    FMaj.Range("F2").AutoFill Destination:=FMaj.Range("F2:F" & derMaj), Type:=xlFillDefault
    For x = derMaj To 2 Step -1
        If FMaj.Range("F" & x) = 0 Then
            FMaj.Range("F" & x).EntireRow.Delete
        End If
    Next x
    'on supprime la colonne temporaire
    FMaj.Columns("F:F").Delete
    'on recommence mais à l'envers, pour ajouter les lignes
    DerSc = FSource.Range("B" & FSource.Rows.Count).End(xlUp).Row
    derMaj = FMaj.Range("B" & FMaj.Rows.Count).End(xlUp).Row
    'une colonne temporaire, cette fois au fichier source
    FC = "=NB.SI(" & "'[" & WMaj.Name & "]" & FMaj.Name & "'!$B$2:$B$" & derMaj & ";B2)"
    FSource.Range("F2").FormulaLocal = FC
    FSource.Range("F2").AutoFill Destination:=FSource.Range("F2:F" & DerSc), Type:=xlFillDefault
    For x = Der_Sc To 2 Step -1
        If F_Source.Range("F" & x) = 0 Then
            F_Maj.Range("A" & derMaj + 1, "G" & derMaj + 1).Value = FSource.Range("A" & x, "G" & x).Value
            derMaj = FMaj.Range("B" & FMaj.Rows.Count).End(xlUp).Row
        End If
    Next x
    'on supprime la colonne temporaire
    FSource.Columns("F:F").Delete
     
    Application.ScreenUpdating = True
     
        Application.Goto Reference:="Miseajour"
        Application.WindowState = xlMinimized
        Application.WindowState = xlMinimized
    End Sub
    "

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par sangokusabri Voir le message
    j'ai déjà un petit programme ci-dessous mais il ne fonctionne pas beaucoup de problèmes d’exécution.
    Qu'est-ce qui ne fonctionne pas dans ce programme ?
    Quels sont les "problèmes d'exécution" ?
    Qu'est-ce qu'il est supposé faire EN DETAIL ?
    Est-ce un programme que tu as écrit ou quelque chose que tu as récupéré sur le net sans vraiment savoir ce qu'il contient ?
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Bonjour,
    En effet, j'ai des problèmes de débogage, blocage sur la ligne 9 et vu que je débute la programmation des macros j'arrive pas à localiser l'erreur.
    Explication:
    la macro doit comparer entre deux fichiers excel (le premier est en ligne et le deuxième est enregistré en local et ils sont sous le même format) et enregistre sur le fichier en local les données de base + mise à jour( la différence entre les deux fichiers).
    Je ne sais pas si c'est bien clair?

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Bonjour,

    l'erreur ne serait pas plutôt en ligne 8 ? l'ordre des lignes n'est pas cohérent en ligne 8 tu référence une feuille de ton classeur WMaj , cependant tu ne définit ce classeur qu'en ligne 9 ... essai déjà d'inverser tes lignes 8 et 9 et lors d'un "problème de débogage" n'oubli pas de lire le message d'erreur et de nous le reporter...

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    J'ai essayé d'inverser les lignes mais le problème persiste, vous trouvez en pièce jointe le message d'erreur. Je pense aussi que c'est un problème de déclaration des variables mais je vois pas l'erreur .
    Fichiers attachés Fichiers attachés

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    ce message d'erreur est si long que tu ne peu le recopier ... (je n'ai pas word ici...)

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    OK désolé le message d'erreur est le suivant: WSource.Sheets("REQ")=<Lindicce n'appartirnt pas à la séléction

    Nom : ERREUR.jpg
Affichages : 295
Taille : 216,1 Ko


  8. #8
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    bon à ce que je vois l'erreur n'est pas sur la ligne 8 mais sur la ligne 7 ..!

    ton classeur "C:\Users\ssaddi\Desktop\REQUETEGIR.xls" possède bien une feuille nommée "REQ" ??

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup pour ton aide j'ai fait fonctionner la macro mais elle ne répond pas à mes besoins.
    Je n'ai pas eu le résultat attendu.

    Je vais essayer de bricoler sur les boucles de cette solution pour l'adapter a mes besoins.

Discussions similaires

  1. Réponses: 5
    Dernier message: 17/07/2014, 15h44
  2. Réponses: 1
    Dernier message: 10/07/2014, 22h59
  3. Macro de mise à jours d'un fichier excel
    Par jumpers70 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/02/2012, 14h41
  4. Réponses: 5
    Dernier message: 30/08/2006, 14h50

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