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 :

selection d'une plage dynamique


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Responsable métrologie
    Inscrit en
    Juin 2016
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable métrologie

    Informations forums :
    Inscription : Juin 2016
    Messages : 25
    Points : 12
    Points
    12
    Par défaut selection d'une plage dynamique
    Bonjour,

    Donc pour faire simple j'aimerai pouvoir rendre dynamique la plage de cette macro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub inserlist()
     
        With Wshebdo.Range("C2:AI366").Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:="=Alist" & CmbSect
            .IgnoreBlank = True
            .InCellDropdown = True
        End With
     
    End Sub
    Le C2 ne bougera jamais par contre je dois ajuster la dernière ligne et la dernière colonne

    j'ai déterminé mon nombre de ligne et mon nombre de colonne. mais je n'arrive pas ( sans doute un problème de syntaxe) à remplacer le AI366 avec mes nouvelles valeurs calculées.

    Voici ou en ai mon 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
    Sub inserlist()
     
    Dim a, i, j As Integer
     
     
    NbColTot
    With WsCal
     
    i = Range("A1").CurrentRegion.End(xlDown).Row ' calcul du nombre de ligne
    j = NbColTot() + 2 ' calcul du nombre de colonne
    End With
     
     
       With Wshebdo.Range("Cells (2,3)" : "Cells(i, j)").Select ' anciennement ("C2:AI366") mais ca bug!
       .Validation
     
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:="=Alist" & CmbSect
            .IgnoreBlank = True
            .InCellDropdown = True
     
        End With
    Si vous avez des idées je suis preneur!

    Si vous avez des questions je reste à votre disposition.

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour
    Si comme je le pense, With WsCal est un objet (feuille de calcul ?) --->>
    lorsque l'on se sert de cet objet OBJET dans un bloc With, on fait précéder d'un . les objets que l'on utilise de cet objet OBJET (la détermination de tes i et j).
    A corriger, déjà, donc.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Responsable métrologie
    Inscrit en
    Juin 2016
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable métrologie

    Informations forums :
    Inscription : Juin 2016
    Messages : 25
    Points : 12
    Points
    12
    Par défaut
    Comme ceci?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     With Wshebdo.Range("Cells(2, 3)", ".Cells(i, j)").Validation

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    T'ai-je parlé de bloc With là ?
    Il ne me semble pas.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Responsable métrologie
    Inscrit en
    Juin 2016
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable métrologie

    Informations forums :
    Inscription : Juin 2016
    Messages : 25
    Points : 12
    Points
    12
    Par défaut
    Bon depuis tous à l heure j essaie de comprendre mais je ne dois pas être au niveau.

    Je pensais pas que mon problème en poserai autant.

    Ayant déterminer le nombre de ligne et le nombre de colonnes je pensais pouvoir déterminer l emplacement de ma dernière cellules et du coup déterminer ma plage de selection.

    Mais je tourne en rond depuis plusieurs jours dessus

  6. #6
    Membre à l'essai
    Homme Profil pro
    Responsable métrologie
    Inscrit en
    Juin 2016
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable métrologie

    Informations forums :
    Inscription : Juin 2016
    Messages : 25
    Points : 12
    Points
    12
    Par défaut
    Voilà j'ai finalement réussi c'était beaucoup plus simple que je ne le pensais

    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
    If WsCal.[A367].Value = " " Then
    i = 366
    Else
    i = 367
    End If
    j = NbColTot()
    
       With Wshebdo.Range(Cells(2, 3), Cells(i, j)).Validation    
           .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:="=Alist" & CmbSect
            .IgnoreBlank = True
            .InCellDropdown = True
        End With
    End Sub

  7. #7
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Attention
    Il fallait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With Wshebdo.Range(Wshebdo.Cells(2, 3), Wshebdo.Cells(i, j)).Validation
        .Delete
    '.....
    End With
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Responsable métrologie
    Inscrit en
    Juin 2016
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable métrologie

    Informations forums :
    Inscription : Juin 2016
    Messages : 25
    Points : 12
    Points
    12
    Par défaut
    Merci pour cette précision!

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

Discussions similaires

  1. Selection d'une plage
    Par buhrne dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 17/03/2008, 13h29
  2. Selection d'une plage avec ligne variable
    Par ginkas31 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/01/2008, 07h04
  3. Réponses: 1
    Dernier message: 30/07/2007, 19h37
  4. [VBA-E] Selection d'une plage de données problématique
    Par Fab117 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/01/2007, 14h41
  5. [VBA-E] somme d'une plage dynamique
    Par Ania dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/11/2005, 21h58

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