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 :

FormuleR1C1et cellule fusionnée


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2020
    Messages : 16
    Par défaut FormuleR1C1et cellule fusionnée
    Bonjour à tous, bonjour le forum,

    J'ai un tableau avec l'année en première ligne et la lettre de contrat en deuxième ligne. Je devrais pouvoir concatener les cellules de la ligne 2 avec leur date correspondante qui est à la ligne supérieure. Concrètement si j'ai "J" en B2 et "2021" en B1 le code devrait me donner "J2021". J'ai écrit un code qui fonctionne mais le problème est qu'il ne prend pas en compte que l'année est fusionnée au dessus des lettres correspondantes. Autrement dit il me donne bien J2021 mais pour les mois suivant il ne prend plus en compte la plage fusionnée donc il ne ressort plus que les lettres seules. Je joins une capture d'écran si cela vous permet d'avoir un meilleur visuel.

    Veuillez également trouver mon code ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub MacroConcat()
    Range("B6").Select
    Range("B6", Cells(6, Cells(2, Columns.Count).End(xlToLeft).Column)).FormulaR1C1 = "=IF(R[-4]C<>0,R[-4]C&R[-5]C,"""")"
    End Sub
    Nom : Capture d’écran 2020-12-06 à 12.38.17.png
Affichages : 120
Taille : 26,5 Ko

  2. #2
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 590
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 590
    Par défaut
    Bonjour

    On le dit sur tous les forums les fusions sont une malédiction...

    Essaye de te débrouiller avec MAX($B$1:B$1)

  3. #3
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Re bonjour,


    Avec si peu d'explication, difficile de comprendre le pourquoi !
    Ceci ressemble à un tableau de données, je ferais l'inverse (sans macro) :
    Un tableau structuré pour les données et un plan pour ta représentation
    Nom : perso.jpg
Affichages : 88
Taille : 29,4 Ko

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2020
    Messages : 16
    Par défaut
    Hello tout le monde,

    Merci beaucoup pour vos réponses et votre temps. J'ai adapté la formule =B2&INDIRECT(ADRESSE(1;SOMMEPROD(MAX((COLONNE($B$1:B1))*($B$1:B1<>""))))) de façon à ce qu'elle fonctionne si de nouvelles colonnes s'ajoutaient avec une (ou plusieurs) nouvelle(s) année(s). Les cellules semblent bien concaténées au format LettreAnnée.

    Excellente journée à vous tous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub MacroEu()
     
    Range("B7").Select
    Range("B7", Cells(7, Cells(2, Columns.Count).End(xlToLeft).Column)).FormulaR1C1 = "=R[-5]C&INDIRECT(ADDRESS(1,SUMPRODUCT(MAX((COLUMN(R1C2:R[-6]C))*(R1C2:R[-6]C<>"""")))))"
     
    End Sub

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

Discussions similaires

  1. [VBA-E] Compter les cellules fusionnées
    Par Korleone dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/08/2017, 17h09
  2. [VBA-Exel] Adresse d'une cellule fusionnée
    Par gloll dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 03/08/2006, 10h25
  3. Réponses: 2
    Dernier message: 21/06/2006, 18h57
  4. [VBA-W] Cellules fusionnées
    Par TheEwook dans le forum VBA Word
    Réponses: 1
    Dernier message: 24/04/2006, 15h06
  5. [VBA]Trouver les cellules fusionnées et autres
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 23/01/2006, 14h12

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