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 :

affection de nom à plage de cellule


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 7
    Par défaut affection de nom à plage de cellule
    Bonjour,

    Je souhaite affecter des noms à différentes plages de cellules

    Avec l'enregistrement de macro j'ai codé ca pour le moment

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Macro4()
    '
    ' Macro4 Macro
    ' Macro enregistrée le 28/01/2008
    Sheets("Collecte").Select
    i = 0
    For c = 3 To 255 Step 3
        i = i + 1
        ActiveWorkbook.Names.Add Name:="mpcol" & i, RefersToR1C1:= _
            "=Collecte!R51C5:R64C5"
    Next
     
    End Sub
    Mon but est donc dans la feuille collecte jusqu'à la colonne 255 avec un pas de 3 sélectionné les 30 premières lignes et lui affecter le nom mpcol1 puis mpcol2 etc....

    Mon Problème est donc de changer la plage de cellule avec la variable c mais je ne sais pas du tout quel syntaxe utilisé

  2. #2
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    Bonjour

    essaye ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    dim ncol as integer, i as integer, plage as range
    For i = 1 to 255 step 3
         ncol = ncol + 1 
         on error resume next
         ActiveWorkbook.Names(ncol).delete
         on error goto 0
         set plage = sheets("Collecte").range(cells(1,ncol).address & ":" & cells(30,ncol).address)
         activeworkbook.names.Add Name:="mpcol" & ncol, refersto:=plage
    next i
    Bonne journée

  3. #3
    Membre éprouvé Avatar de Many31
    Profil pro
    Inscrit en
    Février 2007
    Messages
    198
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 198
    Par défaut
    quite a faire compliquer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Compte = 0
    i = 0
    Do While Compte <= 225
    For c = 3 + Compte To 30 + Compte Step 3
    i = i + 1
        ActiveWorkbook.Names.Add Name:="mpcol" & i, RefersToR1C1:="=Recap!R" & c
    Next
    Compte = Compte + 30
    Loop
    hop EDIT pas tout lu

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 7
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Macro8()
    Dim ncol As Integer, i As Integer, plage As Range
    For i = 1 To 255 Step 3
         ncol = ncol + 1
         On Error Resume Next
         ActiveWorkbook.Names(ncol).Delete
         On Error GoTo 0
         Set plage = Sheets("Collecte").Range(Cells(3, i).Address & ":" & Cells(33, i).Address)
         ActiveWorkbook.Names.Add Name:="mpcol" & ncol, RefersTo:=plage
    Next i
    End Sub
    comme sa, sa marche

  5. #5
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Citation Envoyé par lord_boromir Voir le message
    comme sa, sa marche
    Dans ce cas, peux-tu cliquer sur le bouton , en bas de discussion?

    Merci
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

Discussions similaires

  1. [XL-2007] Nom plages de cellules hétérogènes
    Par laloune dans le forum Excel
    Réponses: 3
    Dernier message: 19/01/2012, 11h51
  2. Nom de plage de cellules
    Par titeZ dans le forum Excel
    Réponses: 1
    Dernier message: 21/08/2007, 15h43
  3. affecter une plage de cellule a une combo
    Par ricoree78 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/07/2007, 15h35
  4. [VBA-E] Affecter un tableau à une plage de cellules, serait-ce possible ?
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 08/02/2007, 12h59
  5. affecter un nom à une plage de cellule
    Par anisr dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 22/11/2006, 10h37

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