Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/12/2011, 15h49   #1
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 140
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 140
Points : 35
Points : 35
Par défaut Définir un nom pour une plage de données

Transférer sur forum VBA

Bonjour,

je souhaite définir un nom pour plusieurs plage de données, mon code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub test()
 
Nb_SG = -1
    With Sheets("Feuil2")
        Nb_SG = .Range("B1").Value
    End With
 
    Sheets("Feuil2").Select
 
    For y = 2 To 2 + Nb_SG
 
        Dim NomSG As String
        NomSG = Cells(y, 1).Value
 
        Range(Selection, Selection.End(xlToRight)).Select
        ActiveWorkbook.Names.Add Name:=NomSG, RefersToR1C1:=*****************
 
    Next
 
 
End Sub
j'arrive à définir automatiquement le nom de la plage, mais je n'arrive pas à indiquer la plage (la plage peut être aléatoire), mon tableau est conçu de la façon suivante :


Colonne A ; Colonne B ; Colonne C ; Colonne D
Nom Plage 1 ; colonne 1 de la plage 1;colonne 2 de la plage 1; colonne 3 de la plage 1
Nom Plage 2 ; colonne 1 de la plage 2;colonne 2 de la plage 2; colonne 3 de la plage 2
Nom Plage 3 ; colonne 1 de la plage 3;colonne 2 de la plage 3; colonne 3 de la plage 3
Nom Plage 4 ; colonne 1 de la plage 4;colonne 2 de la plage 4; colonne 3 de la plage 4

par avance merci pour votre aide
meumeu73.1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 18h14   #2
Membre Expert
 
Homme
Retraité
Inscription : avril 2011
Messages : 696
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Retraité

Informations forums :
Inscription : avril 2011
Messages : 696
Points : 1 448
Points : 1 448
Bonjour meumeu73.1,

Essaie avec ce code
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Option Explicit
Sub test()
Dim MaPlage As Range, NomPlage As Range, PlageAssociee As Range
Dim DerLig As Integer
    With Sheets("Feuil2")
        'Recherche de la derniere ligne renseignée dans la colonne A
        DerLig = .Range("A" & .Rows.Count).End(xlUp).Row
        'Définition de la plage contenant les noms de plage
        Set MaPlage = .Range("A1:A" & DerLig)
        'On passe en revue chaque nom de plage et on lui associe la plage qui lui correspond
        For Each NomPlage In MaPlage
            Set PlageAssociee = .Range(.Cells(NomPlage.Row, 2), .Cells(NomPlage.Row, 4))
            ActiveWorkbook.Names.Add Name:=NomPlage.Value, RefersTo:="=Feuil2!" & PlageAssociee.Address
        Next NomPlage
    End With
End Sub
Cordialement.
gFZT82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 08h21   #3
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 140
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 140
Points : 35
Points : 35
Bonjour,

Merci, cela fonctionne, juste une remarque, j'ai des noms de plage qui sont chiffrés (ex 666HDQ) et lorsque j'arrive dessus, je tombe en débobage, comment peut on y remédier ?
meumeu73.1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 10h43   #4
Membre Expert
 
Homme
Retraité
Inscription : avril 2011
Messages : 696
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Retraité

Informations forums :
Inscription : avril 2011
Messages : 696
Points : 1 448
Points : 1 448
Bonjour,

Tu dois respecter les règles de syntaxe des noms :
le premier caractère d'un nom doit être une lettre, un trait de soulignement (_) ou une barre oblique inversée (\). Les caractères restants du nom peuvent être des caractères alphanumériques, des points et des traits de soulignement.

Cordialement.
gFZT82 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/12/2011, 11h41   #5
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 140
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 140
Points : 35
Points : 35
Merci beaucoup pour la réponse
meumeu73.1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h53.


 
 
 
 
Partenaires

Hébergement Web