Microsoft 365 Récupérer la valeur de la cellule sélectionnée dans une autre feuille

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous :)

J'ai de nouveau besoin de nos ténors...
J'ai fait des recherches hier nuit et beaucoup d'essais et je n'y arrive pas :mad:

Comme l'indique mon titre : Je voudrais "Récupérer la valeur de la cellule sélectionnée dans une autre feuille"

Voici le contexte
- La cellule sélectionnée de la Feuil1 est en ligne 5 cellule A

Je suis sur la feuil2
- à la modification de la cellule B4 ou C4 ou D4 :
- Je voudrais que ma cellule G4 (Cells(ActiveCell.Row, 7))
prenne la valeur de La cellule (Cells(sélectionnée de la Feuil1 en ligne 5(Cell.Row, 7)),
soit la cellule E5 de la Feuil1

Auriez-vous le bon codage ?
Je joins un petit fichier test.

Un grand merci à tous :)
Entre temps, je m'y remets cette nuit ...

Amicalement,
lionel :)
 

Pièces jointes

  • Test.xlsm
    17.2 KB · Affichages: 2
Dernière édition:
Solution
Bonjour lionel.
1/ le cellule active ne peux pas être dans une autre feuille
La solution est de mémoriser la cellule quant tu est dans la feuil1
et de récupérer cette donnée à la modification de tes cellules de la feuille 2
regarde ceci

vgendron

XLDnaute Barbatruc
pas encore très clair..
En feuille 2: si tu modifies B4 C4 ou D4==> tu récupères la donnée en ligne4 de la feuille 1

si tu modifies B10 C10 D10 de la feuille 2, tu récupères alors, la données en ligne 10 de la feuille 1

==> la ligne récupérée en feuille 1 dépend de la ligne modifiée en feuille 2==> C'est ca??
si oui. quid de la colonne??

si tu modifies B C ou D.
c''est toujours la colonne G de la feuille 2 qui est remplie?
c'est toujours la colonne E de la feuille 1 qui est récupérée??

en fait. dans ton fichier, je pense qu'il manque des lignes de données exemple
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Pas tout à fait :
- Quand je traite Feuil2 ligne4, c'est que j'ai au préalable mémorisé en Feuil1 ligne4
- Si je veux traiter une autre ligne de la Feuil2, par exemple la ligne 5, je dois d'abord allez en Feuil1 pour mémoriser la cellule de la ligne5

Précision que j'avais omis de te donner : la mémorisation en Feuil1 me dirige automatiquement en Feuil2 même ligne.

J'espère que mon explication est meilleure lol :)
lionel :)
 

vgendron

XLDnaute Barbatruc
OK
effectivement, en donnant toutes les infos . ca va mieux :)

plutot que de sauvegarder la cellule active à CHAQUE evenement_change de la feuille, je te propose un bouton
une fois que tu as cliqué ta cellule de la feuille "Source", tu cliques sur le bouton
==> la celluleActive est sauvegardée
un message t'indique quelle ligne va etre selectionnée
si tu modifies la ligne en feuille "Destination", le texte est copié
 

Pièces jointes

  • Test (2).xlsm
    20.8 KB · Affichages: 1

Dudu2

XLDnaute Barbatruc
Bonjour,
J'ai lu rapidement et peut-être que cette solution simple sans mémorisation a déjà été évoquée.
VB:
Sub a()
    Dim CelluleAutreFeuille As Range
    Dim FeuilleActive As Worksheet
    Dim AutreFeuille As Worksheet
    
    Application.ScreenUpdating = False
    Set FeuilleActive = ActiveSheet
    Set AutreFeuille = ThisWorkbook.Worksheets(2)
    AutreFeuille.Activate
    Set CelluleAutreFeuille = ActiveCell
    FeuilleActive.Activate
    Application.ScreenUpdating = True
    
    [A1] = CelluleAutreFeuille.Value
End Sub
 

Dudu2

XLDnaute Barbatruc
Je ne suis pas arrivé à faire fonctionner ton code...
L'idée est toute bête... Le même avec les commentaires:
VB:
Sub a()
    Dim CelluleActiveAutreFeuille As Range
    Dim FeuilleActive As Worksheet
    Dim AutreFeuille As Worksheet
   
    'Inhibe l'affichage
    Application.ScreenUpdating = False
   
    'Mémorise la feuille active
    Set FeuilleActive = ActiveSheet
   
    'Active la feuille autre où se trouve la cellule active à récupérer
    Set AutreFeuille = ThisWorkbook.Worksheets(2)
    AutreFeuille.Activate
   
    'Mémorise la cellule active à récupérer dans la feuille autre
    Set CelluleActiveAutreFeuille = ActiveCell
   
    'Ré-active la feuille initialement active
    FeuilleActive.Activate
   
    'Désinhibe l'affichage
    Application.ScreenUpdating = True
   
    'Récupère la valeur de la cellule active de la feuille autre
    [A1] = CelluleActiveAutreFeuille.Value
End Sub
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
L'idée est toute bête... Le même avec les commentaires:
VB:
Sub a()
    Dim CelluleActiveAutreFeuille As Range
    Dim FeuilleActive As Worksheet
    Dim AutreFeuille As Worksheet
  
    'Inhibe l'affichage
    Application.ScreenUpdating = False
  
    'Mémorise la feuille active
    Set FeuilleActive = ActiveSheet
  
    'Active la feuille autre où se trouve la cellule active à récupérer
    Set AutreFeuille = ThisWorkbook.Worksheets(2)
    AutreFeuille.Activate
  
    'Mémorise la cellule active à récupérer dans la feuille autre
    Set CelluleActiveAutreFeuille = ActiveCell
  
    'Ré-active la feuille initialement active
    FeuilleActive.Activate
  
    'Désinhibe l'affichage
    Application.ScreenUpdating = True
  
    'Récupère la valeur de la cellule active de la feuille autre
    [A1] = CelluleActiveAutreFeuille.Value
End Sub
LOL, si je comprends bien, je suis plus bête que l'idée 😀😃😄😁:p🤪😘🤣;)
Bon sang : alors c'est vrai :)
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour sousou :)
Bonjour vgendron :)
Le Forum :)

Je reviens sur le fil car à l'utilisation, j'ai un souci :
Les 3 codes fonctionnement parfaitement :)
- sousou = memoire
- vgendron = Public CelluleActive As Range
- lionel (Job75) = ActiveCell.Name = "MaCell" 'nomme la cellule

Mon souci :
Quand j'ai fait mon traitement, j'ai besoin d'annuler l'effet des fonctions :
- memoire
- Public CelluleActive As Range
-ActiveCell.Name = "MaCell" 'nomme la cellule
C'est à dire annuler les mémorisations.

J'ai fait des tests, des recherches mais je n'ai pas trouvé comment faire.
Impossible de m'en débarrasser lol... Même après fermetures et réouvertures des fichiers.

J'ai aussi tenté en sélectionnant une autre cellule (même vide) mais c'est, évidemment, la cellule vide qui est mémorisée.

Auriez-vous la solution ?
Merci à vous,
Je continue mes recherches ...
lionel :)
 

Discussions similaires

Statistiques des forums

Discussions
312 103
Messages
2 085 313
Membres
102 860
dernier inscrit
fredo67