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 :

update automatique cellules


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 51
    Par défaut
    Bonjour,

    j'ai un fichier Excel avec les 12 mois de janvier à décembre et une 13éme feuil année (qui calcul la clôture de l'année.
    Sur chaque SUR j'ai des personnes à partir de la 10éme ligne avec Nom (colonne D), Prénom (colonne E) et un Identifiant (colonne B).
    Je veux faire un programme VBA qui me permettra si je fais une mise à jour sur un nom ou un prénom que ça se répercute sur toutes mes feuils puisque chaque personne a son unique identifiant et les colonnes aussi restent les mêmes sur mes feuils.
    Merci d'avance.

    Je mets un fichier d'exemple.
    Cordialement.

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    une proposition simple, et uniquement tirée des outils des Tableaux Excel : l'idée est de proposer le choix d'un matricule présent dans le tableau de synthèse
    Cela affiche le nom et le prénom de la personne
    On peut modifier l'un ou l'autre
    on valide et ça se répercute sur les 13 tableaux

    voici, je l'ai fais rapidement, alors test bien :

    1) Créer un Userform avec :

    - une Combobox Appelée Combobox_ID
    - deux textbox appelées TextBox_NOM et TextBox_PRENOM
    - un bouton de commande appelé CommandButton_MODIFIER


    2) Coller dans le module du Userform les trois procédures suivantes

    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
    Private Sub ComboBox_ID_Change()
     
    With Me
        ' gestion des identifiants inexistants
        If .ComboBox_ID.ListIndex = -1 Then
            .ComboBox_ID.Value = ""
            .TextBox_NOM.Value = ""
            .TextBox_PRENOM.Value = ""
            Exit Sub
        End If
     
        ' récupération du nom et du prénom lié à l'identifiant choisi dans le menu déroulant
        .TextBox_NOM.Value = Worksheets("Synthèse").ListObjects(1).Range(.ComboBox_ID.ListIndex + 2, 3)
        .TextBox_PRENOM.Value = Worksheets("Synthèse").ListObjects(1).Range(.ComboBox_ID.ListIndex + 2, 4)
    End With
     
    End Sub
     
    Private Sub CommandButton_MODIFIER_Click()
     
    With Me
        ' gestion du clic sur le bouton alors qu'on a rien choisi
        If .ComboBox_ID.Value = "" Then
            MsgBox "Veuillez choisir un identifiant et effectuer les modifications souhaitées"
            Exit Sub
        Else
            ' modification des nom/prénoms dans les 13 tableaux
            For i = 1 To 13
                Worksheets(i).ListObjects(1).Range(.ComboBox_ID.ListIndex + 2, 3).Value = .TextBox_NOM.Value
                Worksheets(i).ListObjects(1).Range(.ComboBox_ID.ListIndex + 2, 4).Value = .TextBox_PRENOM.Value
            Next i
        End If
    End With
     
    End Sub
     
    Private Sub UserForm_Initialize()
    ' chargement de la liste des identifiants du tableau de synthèse
    Dim Tablo
    Tablo = Worksheets("Synthèse").ListObjects(1).ListColumns(1).DataBodyRange
    Me.ComboBox_ID.List = Tablo
    Application.ScreenUpdating = True
    End Sub


    Tiens nous au courant

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 51
    Par défaut
    C'est avec un grand soulagement que je reviens vers vous pour vous dire que ça marche super bien.
    Merci encore.

    xlp - essai resolu.xlsm

  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Ravi que ça te convienne

    une petite suggestion, met l'affichage de ton Userform en non modal quand tu l'appelles :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    'choisi l'un des quatres, c'est pareil
    'UserForm1.Show 0
    'UserForm1.Show (0)
    'UserForm1.Show (vbModeless)
    UserForm1.Show vbModeless
    ça te permettra de pouvoir continuer à naviguer dans tes différents onglets avec le formulaire affiché

    et au passage, tu peux remplacer le dernier des trois codes par celui là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub UserForm_Initialize()
    ' chargement de la liste des identifiants du tableau de synthèse
    Me.Combobox_ID.List = Application.Transpose(Worksheets("Synthèse").ListObjects(1).ListColumns(1).DataBodyRange)
    End Sub
    j'ai mal nettoyé avant de te le transmettre

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 51
    Par défaut
    Merci pour tout.
    C'est fait avec clarté.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 51
    Par défaut
    A ma grande surprise depuis 9h j'essaie de l'implémenter sur la solution en place et oupsss
    erreur"9"l'indice n'appartient pas à la sélection
    qu'est ce qui pourrait etre à de cet
    erreur 9 l'indice n'appartient pas à la sélection
    .

    • Que la feuille de synthèse ne soit plus à la 13ème position ?

    • Ou que mon tableau aulieu de commencer à la 10ème ligne commence à la 11ème.

Discussions similaires

  1. Update Automatique-script Sql
    Par _shuriken_ dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 19/06/2007, 17h17
  2. [VBA-E] - Selection automatique Cellules apres des tris
    Par michel2662 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 17/04/2007, 10h21
  3. un update automatique
    Par nutix2003 dans le forum Général Java
    Réponses: 9
    Dernier message: 25/01/2007, 12h29
  4. [AJAX] Update automatique de champs tableau
    Par cic_flo dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/10/2006, 16h59

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