Définir des plages automatiquement

gribouillex Messages postés 172 Date d'inscription lundi 10 octobre 2005 Statut Membre Dernière intervention 16 mai 2011 - 18 juil. 2006 à 18:07
tof008 Messages postés 695 Date d'inscription jeudi 5 mai 2005 Statut Membre Dernière intervention 5 janvier 2010 - 19 juil. 2006 à 11:17
Bonjour,

Voici un bout de code que j'ai rédigé :

For Each Cell In Range("A1", "A" & Range("A65536").End(xlUp).Row)
numtrack = ""
If Not Cell.Find(what:=Chr(47) & Chr(47) & " track ") Is Nothing Then
    s = Cell.Value
    pos = InStr(Cell, Chr(47) & Chr(47)) + 8
    For A = pos To Len(s)
    numtrack = numtrack + Mid(s, A, 1)
    Next


' code à insérer MaPlage(+numtrack) = Cell.end(4)  ???????
End If
Next

Au niveau de code à insérer, comment définir des plages de type Cell.end(4) dont le nom serait MaPlagen (n étant le numtrack).
Ce qui voudrait dire qu' à la fin du traitement, je me retrouverai avec plusieurs plages nommées automatiquement : MaPlage1, MaPlage2, MaPlage3...etc...
Pour info, numtrack est toujours un chiffre.

Merci pour votre aide.

5 réponses

tof008 Messages postés 695 Date d'inscription jeudi 5 mai 2005 Statut Membre Dernière intervention 5 janvier 2010 33
19 juil. 2006 à 09:34
e ne sais pas si j'ai bien compris ce que tu veux faire, mais si tu veux juste rajouter un num aprés MaPlage, voila comment tu peux faire :

MaPlage" & n & " , ce qui te donnera MaPlage1 quand n = 1

         (Si la réponse vous convient, appuyez sur réponse acceptée...).

                           Noubliez pas de lire le REGLEMENT 
0
gribouillex Messages postés 172 Date d'inscription lundi 10 octobre 2005 Statut Membre Dernière intervention 16 mai 2011
19 juil. 2006 à 10:34
Voici de façon plus détaillée ce que je souhaite obtenir :
Numtrack est un chiffre que je récupère dans une cellule contenant pas mal de caractères alphanumériques.
Le code ci-dessous ne fonctionne pas car j'ai besoin que numtrack soit déclaré As Long (pour le ActiveWorkbook.Names.Add ), mais ca merdoie au moment du numtrack = numtrack + Mid(s, A, 1).

Dim numtrack As Long
For Each Cell In Range("A1", "A" & Range("A65536").End(xlUp).Row)
numtrack = 0
If Not Cell.Find(what:=Chr(47) & Chr(47) & " track ") Is Nothing Then
    s = Cell.Value
    pos = InStr(Cell, Chr(47) & Chr(47)) + 8
    For A = pos To Len(s)
    numtrack = numtrack + Mid(s, A, 1)
    Next


ActiveWorkbook.Names.Add Name:="TR" & numtrack, RefersToR1C1:=Range(Cell, Cell.End(4))


End If
Next
0
tof008 Messages postés 695 Date d'inscription jeudi 5 mai 2005 Statut Membre Dernière intervention 5 janvier 2010 33
19 juil. 2006 à 10:42
essaie en faisant :

temp(1) =   Mid(s, A, 1)
 numtrack = numtrack + temp(1)
Je ne sais pas si ca va marcher, je n'ai pas vb sous la main, mais dans mes souvenirs c'etait comme ca que je faisais!

         (Si la réponse vous convient, appuyez sur réponse acceptée...).

                           Noubliez pas de lire le REGLEMENT 
0
gribouillex Messages postés 172 Date d'inscription lundi 10 octobre 2005 Statut Membre Dernière intervention 16 mai 2011
19 juil. 2006 à 11:03
Sub or function not defined sur : temp(1) =   Mid(s, A, 1)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tof008 Messages postés 695 Date d'inscription jeudi 5 mai 2005 Statut Membre Dernière intervention 5 janvier 2010 33
19 juil. 2006 à 11:17
Alors essaye comme ca : temp = Mid(s, A, 1)

         (Si la réponse vous convient, appuyez sur réponse acceptée...).

                           Noubliez pas de lire le REGLEMENT 
0
Rejoignez-nous