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 :

valeur dernière ligne selon une colonne fusionnée à côté [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2015
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 57
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Février 2015
    Messages : 72
    Points : 29
    Points
    29
    Par défaut valeur dernière ligne selon une colonne fusionnée à côté
    Bonjour à tous,

    Sur une cellule qui est fusionnée, j'essaie de récupérer la valeur de la dernière ligne de la colonne d'à côté.
    Mon code se présente comme ceci, et avec la fonction adress ca ne fonctionne pas.
    La formule renvoie C$7:C$10 alors que je voudrais que C10..
    Il me manque sûrement encore une fonction..
    Merci pour votre aide car tous mes essais ont échoués.;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim Nblg As Long, Plage As Range, Ligne As Long
     
      Application.ScreenUpdating = False
      Nblg = Range("A" & Rows.Count).End(xlUp).Row
      Range("D7:D" & Nblg) = ""
      Ligne = 7
      While Ligne < Nblg
        Set Plage = Range("D" & Ligne).MergeArea
      '  Range("D" & Ligne).Formula = "=cellule_fusion(" & Plage.Offset(0, -1).Resize(Plage.MergeArea.Cells.Count).Row & ")"
       Range("D" & Ligne).Formula = "=RIGHT(" & Plage.Offset(0, -1).Resize(Plage.Rows.Count).Address(, 0) & "),1)"
        Ligne = Ligne + Plage.Rows.Count

  2. #2
    Nouveau membre du Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2015
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 57
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Février 2015
    Messages : 72
    Points : 29
    Points
    29
    Par défaut le tableau
    Re Bonjour,

    Une image du tableau qui vient d'un prestataire ou je dois récupérer le numéro de la couche en C10

    Nom : ScreenShot_20240326115604.jpeg
Affichages : 56
Taille : 20,0 Ko

  3. #3
    Rédacteur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2013
    Messages
    947
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 947
    Points : 4 058
    Points
    4 058
    Par défaut
    Citation Envoyé par alea83 Voir le message
    Sur une cellule qui est fusionnée, j'essaie de récupérer la valeur de la dernière ligne de la colonne d'à côté... La formule renvoie C$7:C$10 alors que je voudrais que C10..
    Bonjour,
    Si la fusion couvre C7:C10 alors le code suivant renvoie C10 :
    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(Range("C7").Row + Range("C7").MergeArea.Count - 1, Range("C7").Column).Address

  4. #4
    Nouveau membre du Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2015
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 57
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Février 2015
    Messages : 72
    Points : 29
    Points
    29
    Par défaut essais non concluants
    Re Bonjour,

    Si je fais : Range("D" & Ligne).Formula = "=(" & Plage.Offset(0, -1).Address(0, 0) & ")" j'obtiens C7 (soit la première ligne) et si je fais :
    Range("D" & Ligne).Formula = "=(" & Plage.Offset(Plage.Rows.Count, -1).Address(0, 0) & ")" j'obtiens C14 et évidemment moi c'est C10

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2015
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 57
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Février 2015
    Messages : 72
    Points : 29
    Points
    29
    Par défaut Bonjour
    Bonjour,

    je n'avais pas vu votre post avant d'écrire à nouveau, je viens d'essayer mais ça ne fonctionne pas, erreur 438.

    Pour plus de clarté, je dois copier dans la cellule fusionnée D7 (qui contient 4 lignes en fusion) la valeur de C10 (Chaussée - couche 1)
    Si vous avez une solution.. car je ne sais plus quoi tester..

  6. #6
    Rédacteur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2013
    Messages
    947
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 947
    Points : 4 058
    Points
    4 058
    Par défaut
    Bonjour,
    A tester et à adapter à votre besoin, mais voici le principe :

    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub exemple()
    Dim Rg As Range
    ' Retrouve la dernière cellule de la colonne précédente de la plage fusionnée en D7:D10 (soit C10)
    Set Rg = Range(Cells(Range("D7").Row + Range("D7").MergeArea.Count - 1, Range("D7").Column - 1).Address)
    ' Met en D7 la valeur de C10:
    Range("D7") = Rg
    End Sub

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2015
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 57
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Février 2015
    Messages : 72
    Points : 29
    Points
    29
    Par défaut Ca marche
    Bonjour à tous,

    J'ai reçu une aide précieuse pour résoudre le souci, ci-dessous la réponse pour ceux que cela peut intéresser.

    Plage.Formula = "=" & Cells(Plage.Row + Plage.Rows.Count - 1, Plage.Column - 1).Address

    Bonne journée à tous.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 29/03/2018, 17h42
  2. [XL-2003] Recopier une ligne selon une valeur d'une cellule donnée.
    Par bokgkik dans le forum Excel
    Réponses: 2
    Dernier message: 07/12/2011, 19h00
  3. [XL-2007] Incrementer des feuilles avec le nom des lignes d'une colonne + copie valeurs
    Par re dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/10/2010, 15h15
  4. Trier selon une colonne et à partir de la 3eme ligne
    Par manu f dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/07/2010, 20h18
  5. Ne pas afficher une ligne selon une valeur
    Par uloaccess dans le forum Access
    Réponses: 3
    Dernier message: 18/11/2005, 14h04

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