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 :

fusionner des cellules


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    assistante
    Inscrit en
    Novembre 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : assistante

    Informations forums :
    Inscription : Novembre 2015
    Messages : 24
    Par défaut fusionner des cellules
    Bonjour,


    J'aimerais faire une boucle pour fusionner des cellules 2 par 2 dans une colonne à partir de la cellule Cells ("7,x:8,x") Ligne 7 et 8 colonne x jusqu'aux lignes 53 et 54
    mais il me met Erreur d'exécution '5' Argument ou appel de procédure incorrect.
    Si quelqu'un pouvait m'aider à trouver mon erreur.
    D'avance merci.


    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
    For n = 7 To 53
     
    Sheets("feuille 1").Select
    Cells("n,x:n+1,x").Select
    Application.CutCopyMode = False
    With Selection
    .HorizontalAlignment = xlGeneral
    .verticzlAlignment = xlBottom
    .WrapText = False
    .Orientation = 0
    .AddIndent = False
    .IndentLevel = 0
    .ShrinkToFit = False
    .Reading Order = xlXontext
    .MergeCells = True
    End With
     
    Next

  2. #2
    Membre expérimenté

    Homme Profil pro
    Technical Account Manager
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technical Account Manager

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Billets dans le blog
    1
    Par défaut
    Salut,

    C'est normal, cells ne s'utilise pas comme un range, il faut spécifier les numéros de colonne et de ligne sans guillemets.
    Utilise donc plutôt dans ce cas un Range.

    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
     
     
    For n = 7 To 53
      Worksheets(1).Range(n & x & ":" & n+1 & x)Select
      Application.CutCopyMode = False
      With Selection
        .HorizontalAlignment = xlGeneral
        .verticzlAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .Reading Order = xlXontext
        .MergeCells = True
      End With
    Next

  3. #3
    Membre émérite Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Par défaut
    Bonjour,

    Ce n'est pas très clair que voulez vous fusionner? La syntaxe avec des guillemets au niveau de Cells ne fonctionnera pas. J'ai l'impression qu'il serait plus aisé pour vous d'utiliser Range mais encore une fois je n'ai pas tout compris de votre problème.

    Merci de préciser.

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Novembre 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2015
    Messages : 21
    Par défaut
    Bonjour,

    Je pense que le problème se situe lors de la sélection des cellules.

    Si tu mets des variables (ici n) entre guillemet "" elles ne sont pas traitées comme leur valeurs mais comme une chaine de caractère.
    De plus il me semble que "cells" s'utilise uniquement pour sélectionner une cellule et non un ensemble de cellule, dans ce cas on privilégiera "Range"

    Essaye avec la ligne suivante pour sélectionner tes cellules :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("X" & n & ":X" & n + 1).Select
    François

    [EDIT] désolé pour la répétition

  5. #5
    Membre averti
    Femme Profil pro
    assistante
    Inscrit en
    Novembre 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : assistante

    Informations forums :
    Inscription : Novembre 2015
    Messages : 24
    Par défaut
    Citation Envoyé par fraaz Voir le message
    Bonjour,

    Je pense que le problème se situe lors de la sélection des cellules.

    Si tu mets des variables (ici n) entre guillemet "" elles ne sont pas traitées comme leur valeurs mais comme une chaine de caractère.
    De plus il me semble que "cells" s'utilise uniquement pour sélectionner une cellule et non un ensemble de cellule, dans ce cas on privilégiera "Range"

    Essaye avec la ligne suivante pour sélectionner tes cellules :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("X" & n & ":X" & n + 1).Select
    François

    [EDIT] désolé pour la répétition
    Ton code ne marche pas merci quand même et je n'avais pas utilisé Range parce que j'ai 2 variables lignes et colonnes qui sont incrémentés toutes les 2 x commence à 3 pour la colonne C et n commence à 7 pour la ligne 7. donc je ne vois pas comment utilisé range je ne peux pas faire C+1.
    j'aimerais fusionner les cellules C7 ET C8 , C9 et C10, etc.. jusqu'à C53 et C54
    mais selon comment est incrémenté mon x cela peut être la colonne D, E etc...
    Merci à tous pour votre aide

  6. #6
    Membre confirmé
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Novembre 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2015
    Messages : 21
    Par défaut
    Excuse-moi, je n'avais pas vu que "x" était une variable, dans ce cas tu peux utiliser le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(Cells(n, x), Cells(n + 1, x)).Select
    François

  7. #7
    Membre averti
    Femme Profil pro
    assistante
    Inscrit en
    Novembre 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : assistante

    Informations forums :
    Inscription : Novembre 2015
    Messages : 24
    Par défaut
    Sebphyto ton code fonctionne impec pour la colonne X merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("X" & n, "X" & n + 1).Select
    Mais moi x c'est une variable que j'incrémente de 1 à chaque fois à l'intérieur d'une boucle où j'aimerais mettre ma boucle de fusion des cellules. Cette boucle me permet de copier les cellules que je récupère d'autres fichiers dans mon fichier actuel dans des colonnes à la suite les unes des autres en fonction des feuilles dans lesquels vont ces cellules.
    Suis je bien claire ? Je ne sais pas.

  8. #8
    Membre expérimenté

    Homme Profil pro
    Technical Account Manager
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technical Account Manager

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Billets dans le blog
    1
    Par défaut
    Ah oui pardon j'avais pas vu que X était ta référence colonne
    Le code de seb est le bon

  9. #9
    Membre averti
    Femme Profil pro
    assistante
    Inscrit en
    Novembre 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : assistante

    Informations forums :
    Inscription : Novembre 2015
    Messages : 24
    Par défaut
    For n = 7 To 53

    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
    'Cells [(n, x):(n + 1, x)].Select
     
    Sheets("LUNDI").Select
    Range(Cells(n, x), Cells(n + 1, x)).Select
    With Selection
    .HorizontalAlignment = xlGeneral
    .VerticalAlignment = xlBottom
    .WrapText = False
    .Orientation = 0
    .AddIndent = False
    .IndentLevel = 0
    .ShrinkToFit = False
    .ReadingOrder = xlContext
    .MergeCells = True
    End With
    Bonsoir,

    Tout d'abord merci à vous tous d'essayé de m'aider. J'ai essayé le code proposé par Fraaz. Ca marche impeccable, le seul souci c'est que ça fusionne mes 48 cellules ensemble alors que j'ai besoin de 24 cellules fusionnés pour y mettre mes données copiées grâce à ma procédure et je dois garder mes 48 cellules par colonnes car en fonction des fichiers où je récupère les données il y en a où j'ai besoin de mes 48 cellules par colonnes.
    Donc je cherche toujours pourquoi cela ne marche pas comme je voudrais

  10. #10
    Membre éclairé
    Homme Profil pro
    Constructeur ossature bois
    Inscrit en
    Mars 2014
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Constructeur ossature bois
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2014
    Messages : 897
    Par défaut
    Salut Marine,

    fusionner des cellules 2 par 2 dans une colonne à partir de la cellule Cells ("7,x:8,x") Ligne 7 et 8 colonne x jusqu'aux lignes 53 et 54
    Tu veux fusionner en gros, 7 et 8, puis 9 et 10, puis 10 et 11 etc...????

    Bon il y a des erreurs dans ton code,

    Voici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells("n,x:n+1,x").Select
    Tu mélanges deux choses les cells et les range
    avec des Cells c'est sous cette forme
    et avec range
    Puis à cette ligne erreur de Frappe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .verticzlAlignment = xlBottom
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .verticalAlignment = xlBottom
    puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Reading Order = xlXontext
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .ReadingOrder = xlContext

    Voici le code
    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
    Sub fusion()
    For n = 7 To 53
    Sheets("feuille 1").Select 
    'Sheets("feuil1").Select
    'Pas comme çà, ne veux rien dire
    'Cells("n,x:n+1,x").Select
    'Mais comme çà car Excel c'est d'abord la colonne puis la ligne sous cette forme "X4" ce que veux dire colonne X et ligne 4
    Range("X" & n, "X" & n + 1).Select
     
     
    Application.CutCopyMode = False
    With Selection
    .HorizontalAlignment = xlGeneral
    .verticalAlignment = xlBottom
    .WrapText = False
    .Orientation = 0
    .AddIndent = False
    .IndentLevel = 0
    .ShrinkToFit = False
    .ReadingOrder = xlContext
    .MergeCells = True
    End With
     
    Next
    End Sub
    EDIT:
    Je n'avais pas vu que FRAAZ avait répondu car j'étais en train de rédiger ce message même remarque que toi Fraaz

Discussions similaires

  1. poi excel : fusionner des cellules
    Par don'de dans le forum Documents
    Réponses: 1
    Dernier message: 07/03/2007, 16h04
  2. [C# 1.1] Comment fusionner des cellules dans un datagrid ?
    Par absolute_beginner dans le forum ASP.NET
    Réponses: 5
    Dernier message: 09/11/2006, 16h45
  3. Php et Excel - Fusionner des cellules
    Par krolineeee dans le forum Langage
    Réponses: 1
    Dernier message: 08/08/2006, 10h37
  4. [JTable] Fusionner des cellules
    Par Rimk78 dans le forum Composants
    Réponses: 2
    Dernier message: 13/05/2005, 15h53
  5. [] [Excel] Fusionner des cellules
    Par SamyD dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/12/2002, 18h37

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