XL 2021 copier en B7 la valeur de la cellule active (Cells(ActiveCell.Row, 7)) de la feuille "Appels"

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Usine à gaz

XLDnaute Barbatruc
Bonjour à toutes et à tous 🙂

Le titre dit tout mon besoin (enfin, je pense).
Formule ou vba je n'y arrive pas.

Voudriez-vous m'aider ?

Grand merci à toutes et à tous
Je joins le petit fichier test et je continue mes recherches...
🙂
 

Pièces jointes

Dernière édition:
Solution
Bonsoir Lionel, sylvanu,

Utiliser ici une variable Public n'est pas une bonne idée.

Placez plutôt cette macro dans le code de la feuille "Mon besoin" :
VB:
Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
Application.EnableEvents = False
With Sheets("Appels")
    .Activate
    [B7] = .Cells(ActiveCell.Row, 7)
End With
Me.Activate
Application.EnableEvents = True
End Sub
Elle se déclenche quand on active la feuille.

A+
Bonjour Lionel,
Peut être avec dans feuille Appels :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    Sheets("Mon besoin").[B7] = Target
End Sub
Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    Sheets("Mon besoin").[B7] = Target
End Sub
Le premier cas si on clique sur une cellule.
Le second cas si on modifie une valeur.
 

Pièces jointes

Bonjour Lionel, sylvanu,

Place dans le code de la feuille Appels :
VB:
Private Sub Worksheet_Deactivate()
Dim F As Object
Set F = ActiveSheet
Application.ScreenUpdating = False
Application.EnableEvents = False
Me.Activate
Sheets("Mon besoin").[B7] = Cells(ActiveCell.Row, 7)
F.Activate
Application.EnableEvents = True
End Sub
A+
 
Bjr sylvanu 🙂, Bjr Gérard 🙂,

Un grand merci pour vos retours 🙂
@sylvanu
Ton code m'intéresse, je te remercie, et je le conserve pour un autre besoin 🙂

@Gérard
Ton code correspond mieux à mon présent besoin.
Merci Gérard 🙂

LOL, voilà le fil le plus court de "ma carrière d'usine à gaz" 😉
Quoique... 🙂

EZncore merci à vous deux 🙂
 
Evidemment si l'on ne va jamais sur la feuille Appels la cellule B7 ne se remplira pas.

On peut alors ajouter ce code dans ThisWorkbook :
VB:
Private Sub Workbook_Open()
Dim F As Object
Set F = ActiveSheet
Application.ScreenUpdating = False
Sheets("Appels").Activate
F.Activate
End Sub
 
Merci gérard 🙂
Mais lol :
En fait, je n'avais pas donné tout le contexte car je pensais qu'un code dans la feuille "Mon besoin" pourrait s'exécuter à la sélection de la feuille.

Le but du code est de récupérer (à l'activation de la feuille "Mon besoin") et en B7 la valeur de la cellule active (Cells(ActiveCell.Row, 7)) de la feuille "Appels"

si on reste sur le code de Gérard, il suffirait d'ajouter la condition que le code ne s'exécute qu'uniquement si c'est la feuille "Mon besoin" qui est activée (donc ne s'exécute pas si une autre feuille est activée).

Code dans la feuille "Appels"
VB:
Private Sub Worksheet_Deactivate()
[B][U]condition : le code s'exécute uniquement si la feuille "Mon besoin" est activée[/U][/B]
Dim F As Object
Set F = ActiveSheet
Application.ScreenUpdating = False
Application.EnableEvents = False
Me.Activate
Sheets("Mon besoin").[B7] = Cells(ActiveCell.Row, 7)
F.Activate
Application.EnableEvents = True
End Sub

Je remets le fichier avec des onglets en + et j'essaie de voir comment coder la condition.
🙂
 

Pièces jointes

Re,
voilà le fil le plus court de "ma carrière d'usine à gaz"
Ca m'étonnais aussi ! 😂

Un essai en PJ avec :
Module standard :
VB:
Public AppelsActiveCell
Feuille Appels :
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    AppelsActiveCell = Cells(ActiveCell.Row, 7)
End Sub
Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    AppelsActiveCell = Cells(ActiveCell.Row, 7)
End Sub
Feuille Besoin :
Code:
Sub Worksheet_Activate()
    [B7] = AppelsActiveCell
End Sub
 

Pièces jointes

Bonsoir Lionel, sylvanu,

Utiliser ici une variable Public n'est pas une bonne idée.

Placez plutôt cette macro dans le code de la feuille "Mon besoin" :
VB:
Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
Application.EnableEvents = False
With Sheets("Appels")
    .Activate
    [B7] = .Cells(ActiveCell.Row, 7)
End With
Me.Activate
Application.EnableEvents = True
End Sub
Elle se déclenche quand on active la feuille.

A+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour