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

Excel Discussion :

[VBA-Excel]Nommer une sélection


Sujet :

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-Excel]Nommer une sélection
    Bonjour,

    Je souhaite faire une sélection automatique de plusieurs lignes et colonnes de données, et nommer cette sélection en "Essai2", comme on peut le faire à la main avec la Zone Nom de Excel. Il y a un bug à la ligne rouge : "objet requis". Je ne vois pas du tout ce qui ne va pas...

    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
    Sub Selection()
        Set wsProject = ActiveWorkbook.Sheets.Item("feuille3")
        For i = 1 To 50
            For j = 3 To 20
            While wsProject.Cells(3, i) <> ""
                Trim(wsProject.Cells(3, j).Value) = "CR ID"
                While Cells(i, crid_col).Value <> ""
                    Cells(i, j).Select = sclt
                    ActiveWorkbook.Names.Add Name:="Essai2", RefersToR1C1:= _
                    "='Feuille3'!sclt"
                Wend
            Wend
            Next
        Next
     End Sub
    Merci de vos réponses !

  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

    as tu essayé de supprimer la référence à la feuille juste un activesheets.select ?
    Daranc

  3. #3
    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
    Haaarrrggggghh!!!!
    Tu as laissé tes noms de feuilles d'origine?
    regardes si ce n'est pas ActiveWorkbook.Sheets.Item("Feuill3")
    et as tu essayer de mettre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim wsProject As Object
    Daranc

  4. #4
    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
    Je n'ai pas compris ton premier message.
    Pour le deuxième, j'ai bien renommer les feuilles donc c'est pas ça et j'ai ajouté la ligne de code que tu m'as donné et ça ne fait rien de plus, rien de moins.
    En fait j'ai modifié mon programme :
    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
    Sub Selection()
     
        Dim wsProject As Object
        Set wsProject = ActiveWorkbook.Sheets.Item("PMTQ_TLS|PA_ChM")
    MsgBox (1)
        For i = 1 To 50
    MsgBox (2)
            For j = 3 To 50
    MsgBox (3)
            While wsProject.Cells(3, i) <> ""
    MsgBox (4)
               If Trim(wsProject.Cells(3, i).Value) = "CR ID" Then
    MsgBox (5)
                While Cells(j, crid_col).Value <> ""
    MsgBox (6)
                    Range(j, i).Select = sclt
    MsgBox (7)
                    ActiveWorkbook.Names.Add Name:="Essai2", RefersToR1C1:= _
                    "='PMTQ_TLS|PA_ChM'!sclt"
    MsgBox (8)
                Wend
    MsgBox (9)
               End If
     
            Wend
            Next
        Next
     
    End Sub
    Et quand je l'exécute, il s'arrête au msgbox(4), qu'il m'affiche à l'infini.
    Je suis obligée de fermer le programme à chaque fois...

  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
    Mouuaaiisss
    essayes de mettre un if a la place du while puisque tu pointes 1 cellule ou ta boucle while - wend devrait être à l'exterieur tes boucles for to next
    tu peut essayer de vider les trois premiere cellule de la colonne trois pour voir si ta macro affiche d'autre MSG
    Daranc

  6. #6
    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 ce que je voudrais faire c'est : sélectionner, dans ma feuille, les données de la ligne 3 jusqu'à la dernière ligne, puis nommer cette sélection. Et ensuite si c'est possible affiner la sélection en faisant la même chose (ligne 3 à la dernière) à partir d'une certaine colonne qui a pour valeur "CR ID" à la ligne 3.

    J'espère que ça vous aideras à mieux comprendre ce qui ne va pas dans mon programme...

    Merci de votre aide !!!

  7. #7
    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
    Alors essaies ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    lg=range("c65536").end(xlup)+1
    With ActiveWorkbook.Names                           
            .Add Name:="lEssais2", RefersTo:="=Feuil1!$c$1:$c$" & lg
     end With
    Daranc
    ps ta selection avec la colonne qui a valeur CR ID elle doit se faire comment en clair
    tu as des données en ligne 3 jusqu'à mettons 100 ou se trouve la colonne CR ID et quelle selection doit etre faite en final?
    daranc

  8. #8
    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
    Citation Envoyé par Daranc
    Alors essaies ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    lg=range("c65536").end(xlup)+1
    With ActiveWorkbook.Names                           
            .Add Name:="lEssais2", RefersTo:="=Feuil1!$c$1:$c$" & lg
     end With
    Daranc
    ps ta selection avec la colonne qui a valeur CR ID elle doit se faire comment en clair
    tu as des données en ligne 3 jusqu'à mettons 100 ou se trouve la colonne CR ID et quelle selection doit etre faite en final?
    daranc
    En fait, je dois sélectionner toutes les colonnes à partir de la colonnes CR ID (incluse) et ce jusqu'à atteindre une ligne vide.
    La colonne CR ID se trouve en colonne 6 actuellement mais il sera possible pour les utilisateurs qu'ils insèrent de nouvelles colonnes avnt donc il faut que je la trouve de manière automatique.

    Au final, cette sélection me sert à mettre à jour des tableaux croisés dynamiques.

    J'ai essayer ton code mais ça me fait une erreur : "incompatibilité de type" !

    (Merci de m'aider)

  9. #9
    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
    Citation Envoyé par Jusomi31
    En fait, je dois sélectionner toutes les colonnes à partir de la colonnes CR ID (incluse) et ce jusqu'à atteindre une ligne vide.
    La colonne CR ID se trouve en colonne 6 actuellement mais il sera possible pour les utilisateurs qu'ils insèrent de nouvelles colonnes avnt donc il faut que je la trouve de manière automatique.
    la première colonne contenant CR ID est la colonne de départ ? la colonne de fin est ou?
    première colonne contenant CR ID si il y en a plusieurs tu dois avoir quel résultats? la selection est elle une plage continue ou une plage a secteur multiples?
    Daranc

  10. #10
    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
    Autrement as tu essayé de sortir tes boucle While wend de tes boucle for to next
    dans le code avec les msgbox tu es obligatoirement bloquer a ta boucle while puisque la valeur de i ne peut pas changer
    Daranc

  11. #11
    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
    Citation Envoyé par Daranc
    la première colonne contenant CR ID est la colonne de départ ? la colonne de fin est ou?
    première colonne contenant CR ID si il y en a plusieurs tu dois avoir quel résultats? la selection est elle une plage continue ou une plage a secteur multiples?
    Daranc
    Oui la première colonne contenant CR ID est la colonne de départ. Cette colonne est unique. Pour la colonne de fin, je voudrais qu'il arrête la sélection qd il trouve une case vide à la ligne 3.
    La sélection est une plage continue !

  12. #12
    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
    1
    2
    3
    4
    Sub Selection()
        slct = ActiveSheet.UsedRange.Rows("3:" & ActiveSheet.UsedRange.Rows.Count).EntireRow.Select
        ActiveWorkbook.Names.Add Name:="Essai2", RefersTo:="='PMTQ_TLS|PA_ChM'!slct"
    End Sub
    En fait j'ai modifié mon programme ! Ca me sélectionne les lignes du tableau à partir de la 3ème ! Jusque là ça va, mais il me prend des colonnes vides ...comment lui dire de s'arrêter à la dernière colonne pleine ??? Et il ne renomme pas la sélection !

  13. #13
    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
    essayes avec ce truc basique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub num_col()
    For i = 3 To 256
    If Cells(3, i).Value = "" Then
    co = i
    Exit For
    Else
    End If
    Next
     
    End Sub
    tu récupères le numero de colonne dans la variable co
    Daranc

  14. #14
    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
    j'ai trituré ton code pour arriver a ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Selection2()
    a = ActiveSheet.UsedRange.Rows().Count
    b = ActiveSheet.UsedRange.Columns().Count
        ActiveWorkbook.Names.Add Name:="Essai2", RefersToR1C1:="=Feuil1!R4C3:R" & a & "C" & b & ""
    End Sub
    je ne suis pas sur que ce soit ce que tu veux mais ça à l'avantage de nommer la zone pour le départ de la ligne c'est OK puisque le 3 est fixe pour ce qui est du départ colonne il faudra peut être regarder du coté de FIND pour retourner le numéro de colonne de départ
    Daranc

  15. #15
    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
    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
    Sub Selection()
     
    Sheets("PMTQ_TLS|PA_ChM").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:="='PMTQ_TLS|PA_ChM'!R" & d & "C" & b & ":R" & c & "C" & a
     
    End Sub

    Voilà la solution ! Finalement j'ai commencé à la première colonne, même si je ne m'en servirai pas dans les tableaux croisés dynamiques ! En tout cas ça fonctionne très bien !

    Merci de ton aide et de ta patience Daranc

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

Discussions similaires

  1. [VBA][Excel]Copier une feuille dans un nouveau classeur
    Par illight dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/10/2020, 13h51
  2. [VBA][Excel] importer une zone délimitée de texte
    Par Amanck dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/12/2005, 15h59
  3. [VBA Excel] convertir une date francaise au format anglais
    Par loacast dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 15/12/2005, 17h52
  4. [VBA][Excel]Supprimer une partie du texte d'une grosse liste
    Par annedeblois dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 19/09/2005, 18h15
  5. [VBA][Excel]Insérer une ligne
    Par loverdose dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/02/2005, 17h27

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