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 :

Mettre à jour un tableau [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 156
    Par défaut Mettre à jour un tableau
    Bonjour,

    J'ai un début de macro qui me permet de mettre à jour un tableau intitulé "Historique des commandes". On a une ligne par n° de commande et des colonnes suivant des champs "état", "montant" et la première colonne contient le n°de la commande.
    L'objectif est de mettre à jour ces données. Lorsque j'ai la commande d'ouvert, je clic sur un bouton "mise à jour" et les données situées dans "Historique des commandes" sont modifiées.

    En l'état mon code met à jour la ligne 2, "ce qui est bien mais pas top".
    Par contre ce que n'arrive pas à faire, c'est à modifier la ligne de la commande en cours, car l’intérêt est bien la.

    Quelqu'un a-t-il une idée?

    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
    Sub MiseAjourHistorique()
     
    '+++++++++++++++++++++++++++++++++++++++ Compléter l'historique des commandes ++++++++++++++++++++++++++++++++++
     
     
     
     
    Dim CommandeOuverte As String
     
    CommandeOuverte = ThisWorkbook.Name
     
    'NumCommande le numéro de la commande est en      Workbooks(CommandeOuverte).Sheets("Commande").Range("C2")
     
     
     
     
        'Ouvrire l'historique de commandes
     
        Workbooks.Open Filename:="Y:\BASE DOCUMENT\BASE TECHNIQUE\SUIVI COMMANDES.xlsm"
        Sheets("HISTORIQUE DES COMMANDES").Unprotect
     
     
     
        'Mise à jour état, colonne O
     
        Workbooks(CommandeOuverte).Sheets("Commande").Range("L8").Copy
        Workbooks("SUIVI COMMANDES.xlsm").Sheets("HISTORIQUE DES COMMANDES").Range("O2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
       Application.CutCopyMode = False
     
     
        'Mise à jour tarif, colonne F
     
        Workbooks(CommandeOuverte).Sheets("Commande").Range("L17").Copy
        Workbooks("SUIVI COMMANDES.xlsm").Sheets("HISTORIQUE DES COMMANDES").Range("F2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
       Application.CutCopyMode = False
     
        'Ajout la date de reception, colonne E
     
        If Workbooks(CommandeOuverte).Sheets("Commande").Range("L8").Value = "Matériel reçu chez SEDAM" Then
     
     
        Workbooks("SUIVI COMMANDES.xlsm").Sheets("HISTORIQUE DES COMMANDES").Range("E2").Value = Date
     
        End If
     
     
        'Protéger la feuille
        Workbooks("SUIVI COMMANDES.xlsm").Sheets("HISTORIQUE DES COMMANDES").Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
            , AllowFormattingCells:=True, AllowSorting:=True, AllowFiltering:=True
     
        'Enregistrer
        Workbooks("SUIVI COMMANDES.xlsm").Save
     
        Workbooks("SUIVI COMMANDES.xlsm").Close False
    End Sub

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Un début de piste. Je suis parti du principe que tu souhaites modifier une commande. Le numéro de la commande à modifier est en A8 de la feuille "Commande". Les numéros de commande sont en colonne A de la feuille "HISTORIQUE DES COMMANDES". Une recherche est faite sur ce numéro et si trouvé, modifie sinon, message et fin. Dans ce cas-ci, il est possible de coder pour l'ajout d'une nouvelle commande. De toute façon, fait un test sur une copie de ton classeur Suivi car je n'ai absolument rien testé :
    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
     
    Sub MiseAjourHistorique()
     
        Dim Cls_Commande As Workbook
        Dim Cls_Suivi As Workbook
        Dim Plage As Range
        Dim Cel As Range
        Dim NumCommande As Long '<-- adapter si il est alphanumérique !
     
        Set Cls_Commande = ThisWorkbook
     
        'Ouvrire l'historique de commandes
        Set Cls_Suivi = Workbooks.Open("Y:\BASE DOCUMENT\BASE TECHNIQUE\SUIVI COMMANDES.xlsm")
     
        Cls_Suivi.Sheets("HISTORIQUE DES COMMANDES").Unprotect
     
        'défini la plage sur la colonne A à partir de A2 de la feuille "HISTORIQUE DES COMMANDES"
        'Cette colonne est sensée comporter les N° de commande qui sont uniques !
        With Cls_Suivi.Sheets("HISTORIQUE DES COMMANDES"): Set Plage = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp)): End With
     
        'ici, le numéro de commande à modifier est en A8, adapter...
        NumCommande = Cls_Commande.Sheets("Commande").Range("A8").Value
     
        Set Cel = Plage.Find(NumCommande, , xlValues, xlWhole)
     
        If Not Cel Is Nothing Then
     
            'Mise à jour état, colonne O
            Cel.Offset(, 14).Value = Cls_Commande.Sheets("Commande").Range("L8").Value
            'Cls_Suivi.Sheets("HISTORIQUE DES COMMANDES").Range("O2").Value = Cls_Commande.Sheets("Commande").Range("L8").Value
     
            'Mise à jour tarif, colonne F
            Cel.Offset(, 5).Value = Cls_Commande.Sheets("Commande").Range("L17").Value
            'Cls_Suivi.Sheets("HISTORIQUE DES COMMANDES").Range("F2").Value = Cls_Commande.Sheets("Commande").Range("L17").Value
     
            'Ajout la date de reception, colonne E
            If Cls_Commande.Sheets("Commande").Range("L8").Value = "Matériel reçu chez SEDAM" Then
     
                Cel.Offset(, 4).Value = Date
                'Cls_Suivi.Sheets("HISTORIQUE DES COMMANDES").Range("E2").Value = Date
     
            End If
     
        Else
     
            'ici, peut être le code pour l'ajout d'une nouvelle commande si le numéro pas trouvé...
            '...
            '...
            MsgBox "Le numéro de commande '" & NumCommande & "' n'existe pas !"
            Exit Sub
     
        End If
     
        'Protéger la feuille
        Cls_Suivi.Sheets("HISTORIQUE DES COMMANDES").Protect , True, True, True, , True, , , , , , , , True, True
     
        'Enregistrer
        Cls_Suivi.Save
        Cls_Suivi.Close False
     
    End Sub

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 156
    Par défaut
    C'est juste parfaitement ce que je cherchais à faire. Merci Beaucoup

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

Discussions similaires

  1. Mettre à jour un tableau d'object
    Par topolino dans le forum Général JavaScript
    Réponses: 21
    Dernier message: 16/01/2015, 11h45
  2. [XL-2007] Mettre à jour un tableau Excel en fonction d'un autre
    Par m@tix dans le forum Macros et VBA Excel
    Réponses: 31
    Dernier message: 07/03/2012, 01h12
  3. Lancement d'un script pour mettre à jour un tableau HTML
    Par Goltar dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 29/06/2011, 13h39
  4. Mettre à jour un tableau excel
    Par plonglet dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 13/11/2009, 13h37
  5. Mettre à jour des valeurs dans un tableau
    Par espadon1 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/10/2006, 13h31

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