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 :

[VBA-E]Sélection d'une feuille par sa référence


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 66
    Par défaut [VBA-E]Sélection d'une feuille par sa référence
    Bonjour,

    Voilà j'ai un petit souci sur lequel je planche depuis ce matin. D'abord le 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
        namenew = Db & "|" & project    'new name of the future sheet
    
        If Not existsheet Then
            Workbooks(actualname).Sheets.Item("Template").Copy After:=Workbooks(actualname).Sheets.Item("Synergy_Configuration")    'copy of the sheet "Template" after the sheet "Synergy_Configuration
            ActiveSheet.Name = namenew  'the new sheet is rename with namenew
            Set wsProject = ActiveWorkbook.Sheets.Item(namenew) ''initialization of wsProject as the name of the sheet "namenew"
       Else
            crState = ""    'initialization of the values of the column "Change" of the sheet "Template"
       End If
    
       
        
    'select the data in the ProjectName sheet to update the graph automatically
        Sheet(wsProject).Select
    
        Dim a, b, c, d As Integer
        a = 3 'end column
        b = 1 'start column
        c = 3 'end line
        d = 3 'start line
        
        'Column Iteration
        Do
        a = a + 1
        Loop Until IsEmpty(Cells(b, a).Value)
        a = a - 1
        MsgBox a
            
        'Row Iteration
        Do
        c = c + 1
        Loop Until IsEmpty(Cells(c, a).Value)
        c = c - 1
        MsgBox c
     
        ActiveWorkbook.Names.Add Name:="LastData", RefersToR1C1:="='wsProject'!R" & d & "C" & b & ":R" & c & "C" & a
    J'ai mis en Gras les lignes que je n'arrive pas à faire fonctionner.
    Ce programme me permet de sélectionner une feuille dans laquelle je renomme une plage de cellules. Cela marche très bien quand je mets le VRAI NOM de la feuille. Mais, je voudrais que cela passe par sa référence car son nom peut changer. (Je vous ai donné aussi le bout de code où je créé ma feuille automatiquement).

    J'espère que vous pourrez m'aider !!!

  2. #2
    Membre Expert

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Billets dans le blog
    1
    Par défaut
    Salut
    Qu'appelles tu référence
    son nom sheets("feuil1")
    son index sheets(1)
    Daranc

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 66
    Par défaut
    En fait par référence, j'entends le nom que j'utilise pour la créer, à savoir "namenew".

    Est-ce que c'est possible???

  4. #4
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonjour

    Tu peux utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Set wsProject = ActiveWorkbook.Worksheets(namenew)
    '
    '
    '
    wsProject.Select

    michel

  5. #5
    Membre Expert

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sheets.Add
        ActiveSheet.Select
        ActiveSheet.Name = "nom"
    Daranc

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    c'est encore plus simple, si tu lui dis que wsproject est une feuille, tu n'a pas besoin de lui repreciser une deuxieme fois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub macro2()
    namenew = "abc"
    Set wsProject = ThisWorkbook.Sheets.Item(namenew)
    wsProject.Select
    End Sub
    voila, voila

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 66
    Par défaut
    Merci de votre aide. J'ai mis :
    C'était tout simple en effet. Cependant une autre ligne ne fonctionne plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.Names.Add Name:="LastData", RefersToR1C1:="=wsProject!R" & d & "C" & b & ":R" & c & "C" & a
    J'ai essayé en mettant 'wsProject', ça ne fonctionne pas non plus... C'est peut-être encore tout simple, mais je suis débutante en VBA...

    C'est la dernière ligne du programme en plus ! Juste avant, il m'affiche bien le nombre de colonnes puis de lignes, et ensuite il ne me renomme pas ces colonnes et lignes...

  8. #8
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonjour

    Tu peux utiliser:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ActiveWorkbook.Names.Add Name:="LastData", _
            RefersToR1C1:="='" & wsProject.Name & "'!R" _
            & d & "C" & b & ":R" & c & "C" & a

    michel

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 66
    Par défaut
    J'ai fait un affichage de a, b, c, d et aucune de ces valeurs n'est à 0.
    Je n'ai aucune erreur dans le code, mais il ne me renomme plus la plage de cellules, que j'ai sélectionné, en "LastData", pourtant il passe bien à cette ligne quand je fais F8. Je ne comprends pas pourquoi ça ne marche plus. En plus ce code doit fonctionner avnt 15h30 !!!

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 66
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        ActiveWorkbook.Names.Add Name:="LastData", RefersToR1C1:="='" & wsProject.Name & "'!R" & d & "C" & b & ":R" & c & "C" & a
    C'est bon, ça marche !!! Merci à tous et à toutes !!!
    Je vous embrasse !!!

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

Discussions similaires

  1. donner le focus à un bouton d'une feuille par vba
    Par marco62118 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/04/2015, 00h23
  2. [VBA-Excel]Empecher l'insertion d'une feuille par le clic droit
    Par Mut dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 17/09/2006, 11h10
  3. [VBA-E]tri/sélection dans une feuille
    Par philpommé dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/04/2006, 20h18
  4. [VBA Excel] Remettre toute une feuille par défaut
    Par loacast dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/12/2005, 16h56
  5. [VBA Excel] Effacer rapidement une feuille
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/10/2002, 13h12

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