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 pour mettre à jour valeurs dans un tableau


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mai 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Mai 2018
    Messages : 2
    Par défaut Macro pour mettre à jour valeurs dans un tableau
    Bonjour,

    Je suis tout nouveau sur la programmation VBA, et j'ai un fichier Excel nécessitant l'opération suivante:
    Je souhaite pouvoir mettre à jour des valeurs (avec un bouton) dans un tableau Excel à partir d'autres valeurs remplis sur une ligne
    Dans mon exemple, je souhaite pouvoir mettre à jour la ligne 6 avec les valeurs de la ligne 2, par recherche du Numéro de doument correspondant (ici 002 dans la cellule B2), et ainsi de suite.
    Si par exemple je sélectionne le numéro de document 001 dans la cellule B2, alors je souhaiterais mettre à jour la ligne 5.

    Si vous pouviez m'aider ça serait super!

    Merci,
    Fichiers attachés Fichiers attachés

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2018
    Messages : 35
    Par défaut
    Bonjour,

    Si c'est juste pour actualiser les valeurs alors applique ça sur ton bouton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub CommandButton1_Click()
     
    ActiveSheet.Calculate
     
    End Sub
    ou alors plutôt que de mettre un bouton, met ça sur la feuille. Cela permettra de l'actualiser dès son affichage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_activate()
     
    ActiveWorkbook.RefreshAll
     
    End Sub

  3. #3
    Membre Expert Avatar de jerome.vaussenat
    Homme Profil pro
    Formateur Bureautique
    Inscrit en
    Janvier 2011
    Messages
    1 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur Bureautique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 629
    Par défaut
    Salut,

    Une première remarque sur le fichier joint. Les pièces jointes avec l'extention Xlsm, elles n'ont pas la cote. Il peut y avoir du code malvaillant ...

    Dans ton cas, il n'y a pas de code mais, bon. En plus, c'est dans les règles du forum.

    Ensuite, sur ta méthode de mettre à jour ton fichier, il me semble qu'à un moment tu vas avoir un problème :
    Au début, tu saisis (ou choisis avec la liste déroulante) le N° de doc dans la cellule B2. Là c'est bon.
    A partir de là, tu as des formules RECHERCHEV qui vont chercher les données. Là aussi, pour le moment c'est bon.
    Tu veux pouvoir saisir des modifications. Pourquoi pas. Et c'est le code pour mettre à jour le tableau en bas qui te manque.

    Mais après, dans les cellules de la ligne 2, elles sont où les RECHERCHEV. Tu as saisis et les formules, elles sont ...
    Donc pour la prochaine saisie dans la cellule B2, tout ne se mettra pas à jour !

    Je te laisse voir et me dire si je me plante ...

  4. #4
    Nouveau candidat au Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mai 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Mai 2018
    Messages : 2
    Par défaut
    Bonjour Jérome,

    Merci pour ta réponse rapide. Je ferais effectivement bien attention la prochaine fois à ne pas mettre de fichier xlsm!

    Pour répondre à ta question:

    Citation Envoyé par jerome.vaussenat Voir le message
    Mais après, dans les cellules de la ligne 2, elles sont où les RECHERCHEV. Tu as saisis et les formules, elles sont ...
    Donc pour la prochaine saisie dans la cellule B2, tout ne se mettra pas à jour !
    Les cellules C2, D2 et H2 me servent à rentrer une nouvelle version, date et auteur d'un document existant dans le tableau commencant à la ligne 5.
    Et c'est donc ces valeurs qui seront mis à jour dans le tableau après avoir appuyé sur le bouton, les valeurs E2, F2 et G2 ne seront quand à elle pas modifié.

    Merci d'avance pour ton retour,

  5. #5
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 122
    Par défaut
    Salut

    J'ai fait quelques modifications et compléter le code.
    Pour respecter les règles, je met le fichier au format xlsx, il te suffira de rajouter le code du bouton au bon endroit et d'enregistrer au format xlsm.

    A savoir
    1. J'ai déclaré un tableau (Onglet Insertion tableau)
    2. Nommé la plage de cellules contenant les n° de document (onglet "Données", Gestionnaire de noms)
    3. Et le code suivant dans la bouton


    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
    Private Sub CommandButton1_Click()
    Dim CellFind As Range
     
    'On recherche la ligne correspondante au numéro de document
    'Je ne précise pas le nom de la feuille,
    'c'est obligatoirement l'onglet actif puisque l'utilisateur appuie sur un bouton
    Set CellFind = Range("tab_doc[No. Doc]").Find(Range("B2").Value, , xlValues, xlWhole)
     
    'On copie les valeurs de la ligne 2 vers la ligne correspondante
    CellFind.Resize(, 7).Value = Range("B2:H2").Value
     
    'On vide la ligne2
    Range("B2:H2").ClearContents
     
    End Sub
    ++
    Qwaz
    Fichiers attachés Fichiers attachés

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

Discussions similaires

  1. Réponses: 13
    Dernier message: 31/01/2010, 10h58
  2. mettre les valeurs dans une tableau
    Par monphp dans le forum VB.NET
    Réponses: 1
    Dernier message: 01/06/2007, 16h51
  3. [VBA]Macro pour lancer une recherche dans un tableau
    Par manhes dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/04/2007, 18h08
  4. Réponses: 21
    Dernier message: 28/02/2006, 15h23
  5. Réponses: 3
    Dernier message: 05/12/2005, 02h30

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