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 :

Utilisation des lignes et des colonnes


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 38
    Points : 47
    Points
    47
    Par défaut Utilisation des lignes et des colonnes
    Bonjour,

    Je cherche à réaliser un code me permettant de transformer les noms de lignes en chiffre et inversement.
    Par exemple, si je rentre A je dois trouver 1
    Et si je réceptionne 28 je dois trouver AB

    est ce que quelqu'un aurait des fonctions me permettant de faire ce traitement?

  2. #2
    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
    Bonjour
    Explique pourquoi faire.
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 38
    Points : 47
    Points
    47
    Par défaut
    Je travaille dans un système multi-planning.
    Ceux-ci ont diverses utilités (mais surtout du stockage de données)
    Suivant l'insertion que je fait je dois me positionner sur le bon planning puis réaliser une opération (insertion ou récupération de données).
    Je sais à quel position sont mes plannings prenons "B2" comme position de départ. La date que je cherche à atteindre dans ce cas est le 1 février
    B2 correspondant au premier janvier, je vais chercher la valeur (B+1,2)
    Soit comme réponse "C2".
    Derrière ça j'ai un nombre important de planning qui ne sont pas forcément sur B mais par exemple AB, AO , ...
    Et sur des colonnes descendant AB60, ...
    je cherche donc un moyen de traduire AB en chiffre pour lui imposer un décalage et retrouver la position correspondante.

  4. #4
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 239
    Points : 307
    Points
    307
    Par défaut
    Bonjour,

    tu peux t'aider de cette fonction qui fournit la lettre correspondant à la nième colonne :
    ex pour 46 -> doit renvoyer AT

    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
     
     
    Public Function lettre_colonne(num_col As Integer) As String
    Dim lettr As Integer
     posit_col = num_col
     lettr = 0:
    If posit_col > 26 Then
        Do
          lettr = lettr + 1
          posit_col = posit_col - 26
        Loop While posit_col > 26
          lettre_colonne = Chr(64 + lettr) & Chr(64 + posit_col)
     Else
         lettre_colonne = Chr(64 + posit_col)
      End If
    End Function
    dans ton cas , tu peux faire un test isnumeric ( variable ) si c'est vrai , tu lances lettre_colonne , sinon tu execute une fonction inverse ... du style colonne = Asc(lettre_col1) - 64 si la chaine n'a qu'un caractere

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut heu!!!
    bonjour

    la macro de code facile te donne la colonne en lettre

    attention toi tu a demandé de transformer le numero de ligne en lettre

    neammoins tu peux te baser sur sa macro

    car si j'ai bien compris tu voudrais numeroter tes lignes au format identique aux 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
    22
     
    Public Function ligne_en_lettre(num_col As Integer) As String
    Dim lettr As Integer
     posit_col = num_col
     lettr = 0:
    If posit_col > 26 Then
        Do
          lettr = lettr + 1
          posit_col = posit_col - 26
        Loop While posit_col > 26
          ligne_en_lettre = Chr(64 + lettr) & Chr(64 + posit_col)
     Else
         ligne_en_lettre = Chr(64 + posit_col)
      End If
     
     
     
    End Function
    Sub dire2()
     
    MsgBox ligne_en_lettre(activecell.row)'te donne en lettre la ligne de la cellule active
    End Sub

    bien ta macro codefacile!!!
    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    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
    Je trouve c'est un peux bizarre comme approche;

    Sans connaître la lettre de la colonne et au lieu d'utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("C2")="Toto" 'On cherchant la lettre qui vient après le B
    utilise plutôt
    ou accessoirement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("B2").offset(0,1)="Toto"
    Ou enfin j'ai pas compris quelque chose.
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  7. #7
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re

    oui après avoir bien relu ton explication tu ne veut pas chercher la ligne mais bien la colonne

    il y a plusieurs solution
    celle de mercatog "le offset"

    tu a le "find"

    tu peut aussi utiliser un filtre

    et bien d'autre encore

    mais on est un peu loin de l'énoncer de départ

    reformule bien ta question

    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

Discussions similaires

  1. Réponses: 8
    Dernier message: 29/04/2008, 13h58
  2. Traitement des lignes [suppression des lignes vides]
    Par turbo_chess dans le forum Linux
    Réponses: 4
    Dernier message: 22/03/2007, 09h16
  3. Réponses: 12
    Dernier message: 01/03/2007, 16h48
  4. Figer des lignes et des colonnes dans un tableau
    Par Opo dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 15/11/2006, 16h10
  5. Modifier l'enseble des lignes d'une colonne d'une table
    Par bencheikh dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 06/07/2006, 21h46

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