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 :

range et cells, encore des problèmes


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2002
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2002
    Messages : 391
    Par défaut range et cells, encore des problèmes
    Bonjour,

    Voici un morceau de code qui ne marche pas et je ne trouve pas pourquoi :
    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
    Public Sub fusionPalette()
    Dim listCol As String
    Dim j1 As Integer, j2 As Integer
    Dim iLin As Integer
    Dim iCol As Integer
     '   Application.DisplayAlerts = False
            listCol = ("1,3,8,13,18,25,32,41")
            Sheets("Modifications").Select
        For iLin = 2 To 10
            For iCol = 0 To 6
                j1 = Split(listCol, ",")(iCol)
                j2 = Split(listCol, ",")(iCol + 1) - 1
                Sheets("Modifications").Select
                Sheets("Modifications").Range("celMdfDoc_2").Range(Cells(2, j1), Cells(2, j2)).Merge
            Next iCol
        Next iLin
    End Sub
    Ça bloque toujours sur ' .Range("celMdfDoc_2").Range(Cells(2, j1), Cells(2, j2)) '
    Où est ma faute ?

    Merci si vous pouvez m'aider.

  2. #2
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour flamel,

    Je ne vois pas l’utilité du Range("celMdfDoc_2").

    Si j’ai bien compris, tu souhaites effectuer une fusion des cellules des lignes 2 à 10 en suivant la séquence indiquée par listCol.
    En reprenant ton 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
    Public Sub fusionPalette()
        Dim listCol As String
        Dim j1 As Byte, j2 As Byte
        Dim iLin As Byte
        Dim iCol As Byte
        'Application.DisplayAlerts = False
        listCol = ("1,3,8,13,18,25,32,41")
        With Sheets("Modifications")
            For iLin = 2 To 10
                For iCol = 0 To 6
                    j1 = Split(listCol, ",")(iCol)
                    j2 = Split(listCol, ",")(iCol + 1) - 1
                    .Range(Cells(iLin, j1), Cells(iLin, j2)).Merge
                Next iCol
            Next iLin
        End With
    End Sub
    Cordialement.

  3. #3
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2002
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2002
    Messages : 391
    Par défaut
    Merci gFZT82,

    Exact.

    Mon code exact, c'est
    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
     
    Public Sub fusionPalette()
    Dim listCol As String
    Dim j1 As Integer, j2 As Integer
    Dim iLin As Integer
    Dim iCol As Integer
     '   Application.DisplayAlerts = False
            listCol = ("1,3,8,13,18,25,32,41")
            Sheets("Modifications").Select
        For iLin = 2 To 10
            For iCol = 0 To 6
                j1 = Split(listCol, ",")(iCol)
                j2 = Split(listCol, ",")(iCol + 1) - 1
                Sheets("Modifications").Select
                Sheets("Modifications").Range("celMdfDoc_2").Range(Cells(2, j1), Cells(2, j2)).Merge
            Next iCol
        Next iLin
    End Sub
    Une partie s'est perdue.

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour
    Tu as une plage nommée celMdfDoc_2 sur ta feuille Modifications?

    Essaies ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub fusionPalette()
    Dim j As Integer
    Dim ListCol
     
    Application.ScreenUpdating = False
    ListCol = Array(1, 3, 8, 13, 18, 25, 32, 41)
    With Sheets("Modifications").Range("celMdfDoc_2")
        For j = 0 To 6
            .Range(.Cells(2, ListCol(j)), .Cells(10, ListCol(j + 1) - 1)).Merge True
        Next j
    End With
    End Sub

  5. #5
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2002
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2002
    Messages : 391
    Par défaut
    Oui,
    ' celMdfDoc_2 ' c'est le nom d'une cellule de la feuille ' Modifications '

    Merci pour le code, mais il ne fait pas la fusion.

  6. #6
    Expert confirmé

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Par défaut
    Pour commencer (donc, avant d'aller plus loin :p) essaie de remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Range("celMdfDoc_2")
    par
    (en mettant, en fait, l'adresse de la cellule plutôt que son nom.)
    Et là, ca fait quoi ?

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

Discussions similaires

  1. range et cells, encore des problèmes
    Par flamel dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/02/2011, 17h21
  2. Encore des problèmes avec le BDE
    Par Flint dans le forum C++Builder
    Réponses: 19
    Dernier message: 31/12/2007, 23h26
  3. Réponses: 4
    Dernier message: 05/10/2006, 13h10
  4. Encore des problèmes de variables
    Par mat99 dans le forum Langage
    Réponses: 1
    Dernier message: 18/11/2005, 10h26
  5. Réponses: 8
    Dernier message: 10/08/2004, 11h49

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