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 :

Décomposer add=$C$4 en addlig=3 et addcol=4 [XL-2000]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2012
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Décomposer add=$C$4 en addlig=3 et addcol=4
    Bonjour,

    Grâce à une fonction recherche, je récupère l'adresse d'une cellule au format $A$1. J'aimerai pouvoir récupérer séparément en numérique la valeur de la ligne (addlig) et de la colonne (addcol) pour les utiliser comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Cells(addlig,addcol).Value = 6
    En faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    addcol =ActiveCell.Column 
    addlig = ActiveCell.Raw
    ça marche sauf que la cellule active n'est pas ma cellule trouvée

    2 solutions pour m'aider s'il vous plait :
    Comment rendre ma cellule trouvée active avant de faire ActiveCell.Column et ActiveCell.Raw ?
    ou comment écrire correctement quelque chose du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Cells(add).Value = 6
    ?


  2. #2
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 865
    Points
    3 865
    Par défaut
    Bonjour,

    Que veux-tu dire par

    sauf que la cellule active n'est pas ma cellule trouvée
    Si je mets ton code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    addcol = ActiveCell.Column
    addlig = ActiveCell.Row
    ActiveSheet.Cells(addlig, addcol).Value = 6
    il met dans la cellule active la valeur "6"

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2012
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    En fait ma macro ouvre un classeur et trouve la cellule contenant une certaine donnée. Celle-ci se trouve en C1 (mais pas forcement d'où la fonction recherche) et récupère son adresse au format $C$1 (add=$C$1).
    Ensuite je veux écrire en dessous. Pour cela il me faut les coordonnées en numérique si je veux ensuite pouvoir écrire dans C2 de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Cells(2,3).Value = 6
    J'utilise alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    addcol = ActiveCell.Column
    addlig = ActiveCell.Row
    pour faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Cells(addcol,addlig).Value = 6
    .

    Mais malheureusement la cellule active reste toujours C7 qui est la cellule sélectionnée par défaut lorsque le classeur s'ouvre. Et non ma cellule trouvée.
    J'ai essayé de mettre Range(add).Select ou Range(add).Activate avant mais ça ne marche pas.

  4. #4
    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
    Pour tester, une piste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub TEST()
    Dim Adr As String
    Dim Lig As Long
    Dim Col As Integer
     
    Adr = "$G$45"
     
    Lig = Range(Adr).Row
    Col = Range(Adr).Column
     
    MsgBox "L'addresse " & Adr & " correspond à:" & vbNewLine & "Ligne: " & Lig & vbNewLine & "Colonne: " & Col
     
    End Sub

    PS: Évites de travailler avec les Slect/ Activate/ ActiveCell et Activesheet
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2012
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    mercatog je t'aime

  6. #6
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 865
    Points
    3 865
    Par défaut
    Donc pour écrire juste dans la cellule du dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    addcol = ActiveCell.Column
    addlig = ActiveCell.Row
    ActiveSheet.Cells(addlig + 1, addcol).Value = 6

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2012
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    La solution adapté est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     'avec add l'adresse de la cellule au format $A$1
    addcol= Range(add).Column 'renvoie l'adresse de la colonne en numérique
    addlig = Range(add).Row  'renvoie l'adresse de la ligne
    addlig = ligne + 1
     
    ActiveSheet.Cells(addlig, addcol).Value = 6

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

Discussions similaires

  1. message : cannot add new member
    Par meli0207 dans le forum MFC
    Réponses: 3
    Dernier message: 06/06/2005, 14h52
  2. Réponses: 3
    Dernier message: 25/04/2005, 13h38
  3. Réponses: 3
    Dernier message: 30/03/2005, 23h15
  4. developpement d'add-on
    Par tomnie dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 08/02/2005, 09h15
  5. add int
    Par Bernybon dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 15/02/2004, 14h26

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