Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Autres Excel 2007 VBA séparer colonne et ligne obtenues avec .adress

CR16

XLDnaute Junior
bonjour le forum,

Je voudrais savoir s'il était possible de séparer une adresse obtenue par un sub, en colonne et ligne séparée?

C'est à dire extraire le ColumnAbsolute du RowAbsolute obtenue en les mettant séparément dans des noms de "Dim" ex: "Col=ColumnAbsolute " et "Lig=RowAbsolute" que je déclarerai dans option explicite.

Le but est que je ne veux pas utiliser l'activation de l'onglet concerné par l'adresse trouvée.
La colonne trouvée me servira de point de départ pour d'autres "Sub"

Merci d'avance

Cordialement.
CR16
 

Pièces jointes

  • Adress scindée.xlsm
    23.7 KB · Affichages: 6
Solution
Re,

l'adaptation est assez simple, il faut déclarer les variables en long et générer la ligne ou la colonne de l'adresse trouvée :

Code:
Option Explicit

Dim AdresseTrouvee As String

Public lLig As long
Public cCol As long

Sub SelectAnnée()

... 'code conservé

cCol = Range(Split(AdresseTrouvee, "$")(1) & "1").column
lLig= range("A" & Split(AdresseTrouvee, "$")(2)).row

End Sub

Bien cordialement,

Softmama

XLDnaute Accro
Bonjour CR16 et bienvenue,

Je me suis bien creusé la tête.
J'ai même fait un truc, avant de réaliser que je n'avais strictement probablement rien compris à ce que vous attendez de nous.

Il faudrait je crois donner un exemple concret de ce que vous souhaitez obtenir comme résultat, avant que l'on s'éparpille.
Je joins quand même ce que j'ai fait, mais à tâtons donc, dans le Module Modifications :
VB:
Option Explicit
Dim AdresseTrouvee As String
Public lLig As String
Public cCol As String

Sub SelectAnnée()

Dim Annee As Range, PlageDeRecherche As Range
Dim Valeur_Cherchee As String
Dim NumLig As Long
Dim c As Range

Valeur_Cherchee = Sheets("Feuil2").Range("A" & 1)
  
  
Set PlageDeRecherche = Sheets("Feuil1").Rows(1)

Set Annee = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlWhole)


If Annee Is Nothing Then
  
    AdresseTrouvee = "$0$0"
Else
  
    AdresseTrouvee = Annee.Address(ColumnAbsolute:=True, RowAbsolute:=True)

  
End If

 lLig = Split(AdresseTrouvee, "$")(1)
cCol = Split(AdresseTrouvee, "$")(2)

End Sub



A vous relire donc,
 
Dernière édition:

CR16

XLDnaute Junior
Bonsoir Softmama,

Merci pour la réponse rapide. je viens de tester et ça donne le bon résultat, enfin presque finalement.

Je m'explique.

En fait je voudrais pouvoir utiliser le NUMERO de la colonne trouvée par cCol et pas la lettre, pour ensuite faire déplacer ma sélection sur une plage cible.

J'ai ajouté le bout de code suivant pour montrer ce que je souhaite.

J'essais d'expliquer ma procédure:
En feuil2 j'indique l'année à trouver, lorsque c'est fait je souhaite copier la plage de la colonne nommée "C". Dans un principe de simplicité (enfin je crois) je me base sur la colonne de l'année sélectionnée et je sélectionne ma plage concernée en ajoutant +2 a la colonne cCol.

Pour le reste de mon projet je devrais pouvoir y arriver. Si toutefois ce n'est pas le cas je peux repasser pour quelques conseils ou idées?

J'espère avoir apporté un éclaircissement.

PS: Je me suis permis d'inverser le 1 et le 2 entre parenthèse car c'était inversé.
Je ne connaissais pas le SPLIT, merci de me l'avoir fait connaitre.
 

Pièces jointes

  • Adress scindée.xlsm
    24.4 KB · Affichages: 1

Softmama

XLDnaute Accro
Re,

l'adaptation est assez simple, il faut déclarer les variables en long et générer la ligne ou la colonne de l'adresse trouvée :

Code:
Option Explicit

Dim AdresseTrouvee As String

Public lLig As long
Public cCol As long

Sub SelectAnnée()

... 'code conservé

cCol = Range(Split(AdresseTrouvee, "$")(1) & "1").column
lLig= range("A" & Split(AdresseTrouvee, "$")(2)).row

End Sub

Bien cordialement,
 

CR16

XLDnaute Junior
bonsoir,

j'ai testé la correction proposée et NICKEL. Mon projet a fait un bon de géant.
Puis je me permettre de demander un service?

j'ai un morceau de code qui me permet de faire la somme de cellules et ensuite de coller le résultat dans une autre cellule. Sauf que les montants collés ne sont pas EXACTS, ils sont tous arrondi. Comment résoudre le problème?

Merci d'avance
Cordialement
CR16
 

Pièces jointes

  • Adress scindée.xlsm
    32.7 KB · Affichages: 3

CR16

XLDnaute Junior
Bonjour,

je viens juste dire que j'ai trouvé la réponse à ma question pour les arrondis. Il faut déclarer "sum" et "Tot" en Variant.

Voilà ce projet a abouti à sa conclusion.

Merci de m'avoir débloquée et bonne continuation sur le forum.

A une prochaine rencontre peut-être.

Cordialement
CR16
 

eriiic

XLDnaute Barbatruc
Exemple :
VB:
    Set Annee = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlWhole)
    If Not Annee Is Nothing Then
        cCol = Annee.Column
        lLig = Annee.Row
    End If
eric
 

CR16

XLDnaute Junior
Bonjour eriiic,
je viens de tester la modification, mais j'ai dû la placer après le "Else" sinon ça ne fonctionnait pas. Merci à tous pour vos idées et propositions.

Je continue mes améliorations de projet. Maintenant je voudrais créer un graph de représentation. je vais créer une nouvelle discussion.

bonne continuation sur le forum et a bientôt peut-être.

Cordialement
CR16
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…