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 :

Choisir une colonne suivant le nom mis dans une ligne


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif Avatar de Masmeta
    Homme Profil pro
    Ing. R&D informatique industrielle
    Inscrit en
    Mai 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Ing. R&D informatique industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 472
    Points : 221
    Points
    221
    Par défaut Choisir une colonne suivant le nom mis dans une ligne
    Bonjour

    Je reprend un code que j'aimerai amélioré.

    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
     
                   If s = "Text1" Then
                        'SelectionString = SelectionString + "B1:B" + CStr(Names.Item("Sonde1").RefersToRange.Rows.Count + 1)
                        SelectionString = SelectionString + "B1:B" + CStr(r + 2)
     
     
                    End If
     
                    If s = "Texte2" Then
                        'SelectionString = SelectionString + "C1:C" + CStr(Names.Item("Sonde2").RefersToRange.Rows.Count + 1)
                        SelectionString = SelectionString + "C1:C" + CStr(r + 2)
     
                        End If
                    End If
      ..... jusqu'à "Texte n"
    Il faut savoir que s est une variable lu dans un fichier et que les chaine de caractère se trouve dans la ligne 1 colonne n.

    Je recherche à amélioré ce code et je voulais faire :
    Pour chaque colonne
    Si s == chaine de caractère ligne 1 colonne n alors
    Colonne choisi = colonne ( "exemple A1, B1,..."
    fin boucle
    fin
    fin boucle
    Je bloque sur le choix de la colonne et sur l'initialisation de colonne choisi.
    Merci de m'aider

  2. #2
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Peut etre comme ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    dim strColonne as string
     
    Select case s
           case "Text1"
                 strcolonne="B"
           case "Text2"
                 strcolonne="C"
     
    End Select
     
    SelectionString = SelectionString & strcolonne & "1:" strcolonne + CStr(r + 2)

  3. #3
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Excuses, j'avais pas vu la boucle sur les colonnes

    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
     
     
    Dim strColonne As String
    Dim i As Integer
     
    i = 1
     
    Do While Cells(1, i).Value <> ""
     
        Select Case s
     
               Case "Text1"
                     strColonne = "B"
               Case "Text2"
                     strColonne = "C"
     
        End Select
     
        SelectionString = SelectionString & strColonne & "1:" & strColonne + CStr(r + 2)
        i = i + 1
    Loop

  4. #4
    Membre actif Avatar de Masmeta
    Homme Profil pro
    Ing. R&D informatique industrielle
    Inscrit en
    Mai 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Ing. R&D informatique industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 472
    Points : 221
    Points
    221
    Par défaut
    Merci de ton aide

    Je recherche à automatiser la macro sans devoir rentrer a chaque fois le texte de la ligne 1.

    Je suis parti sur cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     For i = 1 To X Step 1
                        If s = ActiveWorkbook.Sheets("LISTE").Cells(1, i).Value Then
                            SelectionString = "i"
                    End If
                    Next i
    Ce qui me manque c'est de savoir combien j'ai de colonne rempli sur la 1er ligne.
    Et savoir si c'est la colonne A, B, C , D....

  5. #5
    Membre actif Avatar de Masmeta
    Homme Profil pro
    Ing. R&D informatique industrielle
    Inscrit en
    Mai 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Ing. R&D informatique industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 472
    Points : 221
    Points
    221
    Par défaut


    J'ai fais ceci qui correspond à ce que je désire :

    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
     
    'Récupération du nom de colonne
    For i = 1 To Sheets("LISTE").Rows.CurrentRegion.Count Step 1
          If s = ActiveWorkbook.Sheets("LISTE").Cells(1, i).Value Then
                   SelectionString = Cells(1, i).Address(ReferenceStyle:=xlA1)
                    i = Sheets("LISTE").Rows.CurrentRegion.Count
          End If
    Next i
    'Mise en forme de SelectionString
    Dim tabS As Variant
     
    tabS = Split(SelectionString, "$")
    SelectionString = ""
    For i = 1 To UBound(tabS) Step 1
          SelectionString = SelectionString & tabS(i)
    Next i

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/03/2015, 11h46
  2. Réponses: 3
    Dernier message: 27/07/2012, 11h25
  3. Réponses: 13
    Dernier message: 15/07/2010, 09h51
  4. [XL-2007] Formule nombre de noms différents dans une colonne
    Par Diyoris dans le forum Excel
    Réponses: 2
    Dernier message: 06/05/2010, 10h13
  5. Réponses: 6
    Dernier message: 16/02/2009, 12h11

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