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 :

Boucle de mise à jour incomplète [XL-2010]


Sujet :

Macros et VBA Excel

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 6
    Par défaut Boucle de mise à jour incomplète
    Bonjour à tous,

    Je rencontre un problème dans la réalisation d'un code pour mon projet et je ne parviens pas à compléter mon code:

    J'ai un fichier comportant 3 onglets: "f3", "f2", "f"

    - L'onglet "f3" comporte une liste de produits identifiés avec un numéro unique. Cette liste n'a pas vocation à évoluer, c'est pour pouvoir retrouver mon point de départ

    - L'onglet "f2" correspond à un registre des modifications sur les produits. L'utilisateur peut déclarer une modification à travers un userform et le produit modifié va apparaitre dans cet onglet (toujours avec le même numéro unique mais également un numéro de modification).
    L'utilisateur peut soit modifier un produit existant soit créer un nouveau produit (qui sera donc uniquement présent en "f2" et "f").

    - L'onglet "f" correspond à ma liste de produits mise à jour, c'est à dire la liste initiale "f3" prenant en compte la dernière modification pour chaque produit en "f2" et les nouveaux produits si il y en a.


    Je cherche donc à faire une macro qui va supprimer la liste actuelle "f", copier ma liste initiale "f3" en prenant en compte les éléments de mon registre de modification "f2" et coller le résultat en "f".

    J'ai commencé avec le code ci-dessous cependant le résultat n'est pas exacte car:
    . les nouveaux produits enregistrés en "f2" n'apparaissent pas dans ma liste "f" actualisée
    . ma liste actualisée "f" comporte des lignes vides supplémentaires après le lancement de la macro.

    Merci par avance pour votre aide et n'hésitez pas à me le faire remarquer si mes explications sont trop maigres

    Adrien

    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
        Sub Macro1()
     
        'On supprime la liste actuelle f
           Sheets("f").Select
            Range("A10").Select
            Range(Selection, Selection.End(xlDown)).Select
            Range(Selection, Selection.End(xlToRight)).Select
            Selection.ClearContents
            Range("A10").Select
     
        'On recopie la liste initiale f3 dans f
           Dim CopyRange As Range
            Dim PasteRange As Range
            Set CopyRange = Sheets("f3").Cells(10, 1).Resize(455, 14)
            With Sheets("f")
            Set PasteRange = Sheets("f").Cells(10, 1).Resize(455, 14)
            End With
            'on met les valeurs de la references CopyRange dans la references PasteRange
           PasteRange.Value2 = CopyRange.Value2
            'on supprime les references
           Set CopyRange = Nothing
            Set PasteRange = Nothing
     
        'On ajoute les modifications déclarée en f2 dans la liste mise à jour en f
           Dim lgn, nu%, i%, j%, plgf As Range
            With Worksheets("f")
                Set plgf = .Range(.Cells(10, 1), .Cells(9, 1).End(xlDown))
            End With
            i = 10
            With Worksheets("f2")
                Do While .Cells(i, 4) <> ""
                    nu = .Cells(i, 4)
                    lgn = .Cells(i, 4).Resize(, 14).Value
                    For j = 1 To plgf.Rows.Count
                        If plgf.Cells(j, 1) = nu Then
                            plgf.Cells(j, 1).Resize(, 14).Value = lgn
                            Exit For
                        End If
                    Next j
                    i = i + 1
                Loop
            End With
     
        End Sub
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Boucle de mise à jour
    Par Fred_rt dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 29/04/2015, 12h17
  2. [Mise à jour bloquée] problème de maj: boucle perpétuelle
    Par simipi dans le forum Windows Vista
    Réponses: 7
    Dernier message: 08/10/2009, 14h38
  3. Mise à jour d'une valeur dans une boucle
    Par dido_k83 dans le forum MATLAB
    Réponses: 4
    Dernier message: 22/06/2009, 16h35
  4. boucle vba et mise à jour de colonne
    Par jrege75 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/12/2008, 23h18
  5. Boucle de mise à jour SQL
    Par ChrisMan dans le forum Langage SQL
    Réponses: 3
    Dernier message: 29/05/2007, 15h30

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