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 :

diverses colonnes dans une plage


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2002
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2002
    Messages : 391
    Par défaut diverses colonnes dans une plage
    Bonjour,

    Je souhaiterais sélectionner automatiquement diverses colonnes dans une feuille, par exemple en fonction de la valeur de la cellule de la ligne 1, puis pouvoir les regrouper en une plage.
    J'obtiens bien l'adresse de mes colonnes (par un nombre), mais je ne sais pas les regrouper pour créer une plage.
    Merci si vous pouvez m'aider, à condition que je me sois bien exprimé !

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 102
    Par défaut
    Bonjour

    Un exemple de regroupement dans une plage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Dim plage As String
    plage = Chr(64 + 1) & ":" & Chr(64 + 2)' pour les colonnes A et B
    plage = plage & "," & Chr(64 + 4) & ":" & Chr(64 + 4) ' pour la  colonne D
        Range(plage).Select
        Range("a1").Activate
    End Sub
    JP014

  3. #3
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2002
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2002
    Messages : 391
    Par défaut
    Merci jp014?

    Mais quand l'adresse d'une colonne a 2 lettres, commùent faire ?
    Je ne savais pas qu'on pouvait faire plage = plage + etc..

    Cordialement

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 102
    Par défaut
    Bonjour

    Mais quand l'adresse d'une colonne a 2 lettres, comment faire ?
    Une fonction à tester pour transformer une valeur numérique en adresse alphabétique.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Function LCenAX(Col As Long)
    Dim £I As Integer
    If Col < (26 + 1) Then
        LCenAX = Chr(Col + 64)
    Else
        For £I = 1 To 11
            If Col > (£I * 26) And Col < ((£I + 1) * 26) + 1 Then LCenAX = Chr(64 + £I) & Chr(Col + 64 - (£I * 26))
        Next £I
    End If
    End Function
    Je n'ai pas trouvé la syntaxe si elle existe pour utiliser Columns
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Range(Columns(1), Columns(3)).Select
    sélectionne les colonnes de 1 à 3


    JP014

  5. #5
    Expert éminent 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
    Par défaut
    un exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim i As Integer
    Dim TabCol
    Dim plage As String
     
    TabCol = Array(2, 5, 6, 8, 12, 78, 112)
    plage = Columns(TabCol(0)).Address
    For i = 1 To UBound(TabCol)
        plage = Union(Range(plage), Columns(TabCol(i))).Address
    Next i
    Range(plage).Select

  6. #6
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut
    [Edit]
    ... arff grillé...
    [/Edit]
    et VBA créa Union

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Union(Columns(45),Columns(55),Columns(66),......).select
    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

Discussions similaires

  1. [XL-2003] Trouver le min et le max d'une colonne dans une plage filtrée
    Par Gwladys dans le forum Excel
    Réponses: 2
    Dernier message: 06/04/2009, 17h37
  2. [SQL] Somme de 2 colonnes dans une même table
    Par Cyrilange dans le forum Langage SQL
    Réponses: 6
    Dernier message: 11/04/2005, 08h32
  3. Noms de colonne dans une colonne
    Par Digirom dans le forum Langage SQL
    Réponses: 14
    Dernier message: 23/04/2004, 11h51
  4. Changements de colonnes dans une BDD MySQL
    Par arnaud_verlaine dans le forum Requêtes
    Réponses: 8
    Dernier message: 07/08/2003, 11h33
  5. Ajout d'une colonne dans une table ...
    Par Djedjeridoo dans le forum SQL
    Réponses: 2
    Dernier message: 22/07/2003, 16h12

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