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, difficultés


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, difficultés
    Bonjour,

    Où est l'erreur dans cette partie de code ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      Worksheets("Moniteur").Range("groupeRGB").Range(Cells(i, j),Cells(1, j + 1)).Select
    Je n'arrive pas à m'en sortir.
    J'ai du mal avec le mixage de Range et Cells.

    Merci si vous pouvez m'aider.

  2. #2
    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
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    worksheets(X).range(cells(a,b),cells(c,d)).interior.colorindex=3
    mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    worksheets(X).range(worksheets(X).cells(a,b),worksheets(X).cells(c,d)).interior.colorindex=3
    qui revient à écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    with worksheets(X)
    .range(.cells(a,b), .cells(c,d)).interior.colorindex=3
    end with
    PS: Tu peux travailler sans le Select

  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 mercatog,

    Mais je passe d'abord par une plage "groupeRGB" dans laquelle je voudrais sélectionner des cellules pour les fusionner.
    Comment dois-je formuler ?
    Merci

  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
    Aïe le fusionner!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
          With Worksheets("Moniteur").Range("groupeRGB")
             .Range(.Cells(i, j), .Cells(i, j + 1)).Merge
          End With

  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
    Je n'obtiens pas de fusion. Voici le code complet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    For i = 1 To 8
        For j = 1 To 5 Step 2
        Worksheets("Moniteur").Select
        With Worksheets("Moniteur").Range("groupeRGB")
            .Range(.Cells(i, j), .Cells(i, j + 1)).Merge
        End With
       Next j
    Next i
    Je ne trouve pas mon erreur.

    Merci.

  6. #6
    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
    Pour ton cas, essaies ceci (tu remarque que 2 variables s et t permettront l'offset)
    Encore une fois, tu n'as pas besoin du Select
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim t As Long
    Dim j As Integer, s As Integer
     
    With Worksheets("Moniteur").Range("groupeRGB")
       t = .Row - 1       'Ligne de la première cellule de la plage nommée -1
       s = .Column - 1   'Colonne de la première cellule de la plage nommée -1
       For j = 1 To 5 Step 2
          .Range(.Cells(1 - t, j - s), .Cells(20 - t, j + 1 - s)).Merge True 'True permet de fusionner ligne par ligne séparément
       Next j
    End With
    [Edit]: Code allégé

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

Discussions similaires

  1. Différence entre Range et cells
    Par bibvba dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/06/2017, 12h36
  2. Plage de données : Range vs Cells : Erreur 1004
    Par Secco dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/06/2008, 17h29
  3. Convertir Range en Cells
    Par Sakapatate dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/05/2008, 14h18
  4. Définition d'un range par Cells(), Cells()
    Par Dereck07 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/03/2008, 22h11
  5. Export Excel - Souci avec Range et Cells
    Par timoth dans le forum VBA Access
    Réponses: 3
    Dernier message: 14/02/2008, 15h00

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