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

Excel Discussion :

Mettre à jour une cellule précise


Sujet :

Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Août 2019
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : retraité
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2019
    Messages : 109
    Par défaut Mettre à jour une cellule précise
    Bonjour,
    Ci-joint un petit tableau exemple de ce que je souhaiterai obtenir...

    Je pense que cela doit être faisable...
    D'avance, un grand merci

    fichier "change equipe.xlsx" joint
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241

  3. #3
    Membre confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Août 2019
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : retraité
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2019
    Messages : 109
    Par défaut
    Citation Envoyé par ARTURO83 Voir le message
    Bonjour Arturo,
    grand merci pour l'aide... mais j'ai dû mal m'exprimer
    les deux listes de joueurs sont exactement les mêmes listes sauf que l'une et l'autre sont triées différemment.
    et j'ai besoin de conserver ces deux listes triées ainsi.
    Il faut donc que pour le joueur sélectionné... la nouvelle équipe apparaisse dans les deux listes

    j'espère que c'est fasable

  4. #4
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241

  5. #5
    Membre confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Août 2019
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : retraité
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2019
    Messages : 109
    Par défaut
    Citation Envoyé par ARTURO83 Voir le message
    Super c'est ce que je recherche...
    Je vais essayer d'adapter ceci à mon tableau original...
    suis pas certain d'y arriver mais je vais essayer.
    Merci beaucoup

    PS: je viens de m'apercevoir que si on efface la case "nouvelle équipe" le joueur concerné n'a plus d'équipe affectée.
    Hors une fois que la mise à jour (nouvelle équipe) a été faite la case F20 doit être effacée...

  6. #6
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Ok, voilà la modif
    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
    Private Sub Worksheet_Change(ByVal Target As Range)
        On Error GoTo Sortie
        Application.EnableEvents = False
        If Target.Address = "$F$20" Then
            If Target.Value = "" Then Exit Sub
            Joueur = Target.Offset(0, -3).Value
            With Range("F6:F13")
                Set x = .Find(Joueur)
                If Not x Is Nothing Then
                    Cells(x.Row, "G") = Target.Value
                    Range("F6:G13").Sort Range("G6"), 1
                    End If
            End With
            With Range("C6:C13")
                Set x = .Find(Joueur)
                If Not x Is Nothing Then
                    Cells(x.Row, "D") = Target.Value
                    Range("C6:C13").Sort Range("C6"), 1
                    End If
            End With
        End If
    Sortie:
        Application.EnableEvents = True
    End Sub
    Saurez-vous la recopier à la place de l'autre?

  7. #7
    Membre confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Août 2019
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : retraité
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2019
    Messages : 109
    Par défaut
    Oui, j'ai recopié...
    par contre ce qui cloche c'est que après une modification d'équipe... on ne peut pas faire d'autre modification

    Je suis désolé de vous solliciter autant

  8. #8
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    par contre ce qui cloche c'est que après une modification d'équipe... on ne peut pas faire d'autre modification
    C'est à dire? j'ai fait plusieurs essais, changer de joueur, d'équipe et tout fonctionne correctement. Expliquez en détail ce que vous faites comme opérations afin que je les reproduise.

  9. #9
    Membre confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Août 2019
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : retraité
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2019
    Messages : 109
    Par défaut
    En fait, votre système fonctionne très bien.
    Je viens de faire plusieurs essais avec plusieurs joueurs.. pas de problème.

    Par contre si j'efface la cellule (F20) "nouvelle équipe" à ce moment là, ça ne fonctionne plus.
    C'est pas grave je peux laisser cette cellule (f20) telle quelle.
    Je pense que ça devrait aller comme ça...

    Encore un grand merci
    Cordialement

  10. #10
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Non, il n'y a pas de raison, ça ne marche pas parce que je me suis trompé, voici la macro corrigé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
    Private Sub Worksheet_Change(ByVal Target As Range)
        On Error GoTo Sortie
        Application.EnableEvents = False
        If Target.Address = "$F$20" Then
            If Target.Value = "" Then GoTo Sortie
            Joueur = Target.Offset(0, -3).Value
            With Range("F6:F13")
                Set x = .Find(Joueur)
                If Not x Is Nothing Then
                    Cells(x.Row, "G") = Target.Value
                    Range("F6:G13").Sort Range("G6"), 1
                End If
            End With
            With Range("C6:C13")
                Set x = .Find(Joueur)
                If Not x Is Nothing Then
                    Cells(x.Row, "D") = Target.Value
                    Range("C6:C13").Sort Range("C6"), 1
                End If
            End With
        End If
    Sortie:
        Application.EnableEvents = True
    End Sub
    Cdlt

  11. #11
    Membre confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Août 2019
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : retraité
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2019
    Messages : 109
    Par défaut
    Excellent,
    c'est vraiment génial...

    un gros gros gros merci

  12. #12
    Membre confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Août 2019
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : retraité
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2019
    Messages : 109
    Par défaut
    Bonjour Arturo

    Je suis désolé de revenir à la charge avec mon histoire de changement d'équipe.
    Le petit exemple que vous m'avez renvoyé fonctionnait très bien...

    J'ai essayé d'adapter cela sur ma feuille réelle... je n'y arrive pas.
    Pourtant j'ai remplacé les références de cellules, rien à faire.

    Je me permets de vous adresser ma feuille originale... pourriez-vous adapter votre code à cette feuille ???
    Promis, je ne vous embêterai plus
    Cordialement
    Fichiers attachés Fichiers attachés

  13. #13
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Si dès le départ vous aviez mis le vrai fichier, vous auriez eu la bonne solution. Là, il faut tout reprendre à zéro puisque les emplacements sont différents et que vous utilisez des tableaux structurés. Pensez-y pour les prochaines fois.
    la nouvelle macro:

    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
    Option Explicit
     
    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim f1 As Worksheet
        Dim Tabl_1 As ListObject, Tabl_2 As ListObject
        Dim Name2 As String
        Dim Col_1 As ListColumn, Col_3  As ListColumn
        Dim x As Range
        On Error GoTo Sortie
        Application.ScreenUpdating = False
        Application.EnableEvents = False 'on empêche de relancer la macro après chaque changement dans la feuille
        Set f1 = Sheets("Feuil1")
        If Target.Address = "$T$9" Then
            If Target.Value = "" Then GoTo Sortie 'en cas d'erreur
            Name2 = Target.Offset(-4, -1).Value 'Valeur à rechercher
            Set Tabl_2 = f1.ListObjects("T_Players2") 'nom du tableau structuré 2
            Set Col_1 = Tabl_2.ListColumns(1) 'Colonne 1 = colonne "Name2"
            Set x = Col_1.DataBodyRange.Find(Name2) 'on cherche le "Name2" dans la colonne 1 du tableau 2
            If Not x Is Nothing Then 'si elle est trouvée
                 Cells(x.Row, "M") = Target.Value 'on applique la valeur recherchée
                Tabl_2.Sort.SortFields.Clear 'on initialise le tri
                Tabl_2.Sort.SortFields.Add2 Key:=Range("T_Players2[Team]"), SortOn:=xlSortOnValues, Order:=xlAscending 'on tri par "TEAM"
                Tabl_2.Sort.SortFields.Add2 Key:=Range("T_Players2[Name2]"), SortOn:=xlSortOnValues, Order:=xlAscending 'on tri par "Name2"
                Tabl_2.Sort.Apply 'On applique le tri
            End If
     
            Set Tabl_1 = f1.ListObjects("T_Players1") ' nom du tableau structuré 1
            Set Col_3 = Tabl_1.ListColumns(3) 'Colonne 3 = colonne "Name2"
            Set x = Col_3.DataBodyRange.Find(Name2) 'on cherche le "Name2" dans la colonne 2 du tableau 1
            If Not x Is Nothing Then 'si elle est trouvée
                Cells(x.Row, "G") = Target.Value 'on applique la valeur recherchée
                Tabl_1.Sort.SortFields.Clear 'on initialise le tri
                Tabl_1.Sort.SortFields.Add2 Key:=Range("T_Players1[Name1]"), SortOn:=xlSortOnValues, Order:=xlAscending 'on tri par "Name2"
                Tabl_1.Sort.SortFields.Add2 Key:=Range("T_Players2[Team]"), SortOn:=xlSortOnValues, Order:=xlAscending 'on tri par "TEAM"
                Tabl_1.Sort.Apply 'On applique le tri
            End If
        End If
    Sortie:
        Set f1 = Nothing
        Set Tabl_1 = Nothing
        Set Tabl_2 = Nothing
        Set x = Nothing
        Set Col_1 = Nothing
        Set Col_3 = Nothing
        Application.EnableEvents = True 'on autorise de nouveau les changements dans la feuille
    End Sub
    et le fichier
    Raivig_Mettre à jour une cellule précise.xlsm

    Cdlt

  14. #14
    Membre confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Août 2019
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : retraité
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2019
    Messages : 109
    Par défaut
    Bien entendu, j'ignorais ce détail... et j'en suis désolé.
    Comme je ne m'y connais pas en programmation, je pensais que ce serait simple de simplement copier/coller.
    J'arrive juste à faire des petites macros en cliquant dur "développeur", "enregistrer une macro"... donner un nom et enregistrer le cheminement...
    Je suis impressionné par votre maîtrise et votre niveau.

    J'aurais appris cette chose...

    En tout cas, un énorme merci car cela me rend un très grand service.
    Cordialement

Discussions similaires

  1. Réponses: 0
    Dernier message: 07/12/2016, 13h43
  2. [XL-2007] mettre à jour une cellule à partir d'un script vba
    Par google_c# dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/01/2011, 13h51
  3. JTable : mettre à jour une cellule sans taper "enter"
    Par Copps dans le forum Composants
    Réponses: 9
    Dernier message: 21/08/2007, 17h34
  4. Comment mettre à jour une ligne sans doublon via déclencheur
    Par fuelcontact dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/08/2004, 15h56
  5. Mettre à jour une table depuis une autre
    Par rsc dans le forum SQL
    Réponses: 4
    Dernier message: 09/07/2004, 10h08

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