XL 2021 En restant sur Feuille 1 active, comment activer dans ma feuille2 la 1ère cellule vide de la colonne A

Usine à gaz

XLDnaute Barbatruc
Bonsoir à toutes et à tous :)

Je n'arrive pas à trouver un code :
Si je suis sur ma feuille 2, au clic sur le bouton,
VB:
Sub déplace()
ActiveSheet.Cells(Rows.Count, "a").End(xlUp)(2).Select
End Sub
j'active la 1ère cellule vide de la colonne A (soit A8 pour mon exemple)

Mon besoin
Je suis sur ma feuille 1 (feuille active)
En restant sur ma feuille1
quel code me permettrait d'activer dans ma feuille2 la 1ère cellule vide de la colonne A (soit A8 pour mon exemple)

Je sèche. Auriez-vous le bon code ?
Je joins un petit fichier test.
Merci à vous...
:)
 

Pièces jointes

  • test.xlsm
    18 KB · Affichages: 0
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
ben j'y ai répondu
et comment veux tu que je ne charrie pas dis moi
purée depuis 2011 minimum que tu excelise sans exceller 😁 🤣 tu ne sais pas ça

et non seulement ca mais en plus tu veux activer une cellule sans être sur la feuille
et là je te répète la question que l'on t'a déjà posé
a quoi ça te sert

maintenant si tu me dis que tu veux avant d'être sur la feuille 2 que sa cellule A8 doit être celle qui est active quand tu va l'activer ta demande peut avoir un sens sinon ca n'en a pas

VB:
Sub test()
    Set sh = ActiveSheet
    Application.ScreenUpdating = False
    Application.Goto Feuil2.Range("A8")
    sh.Activate
End Sub
 

Usine à gaz

XLDnaute Barbatruc
re
ben j'y ai répondu
et comment veux tu que je ne charrie pas dis moi
purée depuis 2011 minimum que tu excelise sans exceller 😁 🤣 tu ne sais pas ça

et non seulement ca mais en plus tu veux activer une cellule sans être sur la feuille
et là je te répète la question que l'on t'a déjà posé
a quoi ça te sert

maintenant si tu me dis que tu veux avant d'être sur la feuille 2 que sa cellule A8 doit être celle qui est active quand tu va l'activer ta demande peut avoir un sens sinon ca n'en a pas

VB:
Sub test()
    Set sh = ActiveSheet
    Application.ScreenUpdating = False
    Application.Goto Feuil2.Range("A8")
    sh.Activate
End Sub
Merci patrick :)
Oui, on ne se refait pas lol :)
Merci pour ton code qui fonctionne.
Mais A8 était juste pour l'exemple.
Il me faudrait :
Application.Goto Feuil2.Range("1ère cellule vide de la colonne A")
:)
 

Usine à gaz

XLDnaute Barbatruc
Bjr Gérard :), Bjr Patrick :), Bjr ChTi160 :), Bjr dysorthographie :), Bjr le Forum :)

Je reviens sur ce fil pour y mettre le fichier qui fonctionne avec 2 solutions.
Solution 1
Code de Gérard que je me suis permis de compléter.
Pour qu'il soit fonctionnel, la cellule activée est en col "L" de la feuille Appels.
Solution 2
Code de Patrick que je me suis permis de compléter.
Pour qu'il soit fonctionnel, la cellule activée est en col "K" de la feuille Appels.

Encore un grand merci à pour vos aides si précieuses.
Je joins le fichier fonctionnel,
:)
 

Pièces jointes

  • 01 Appels vers transfert.xlsm
    52.1 KB · Affichages: 2

TooFatBoy

XLDnaute Barbatruc
Bonjour,

Lionel à dit:
En restant sur Feuille 1 active, comment activer dans ma feuille2 la 1ère cellule vide de la colonne A
Comme l'a dit PT, c'est absolument impossible puisqu'il ne peut y avoir qu'une seule feuille active à la fois et que seules les cellules de la feuille active peuvent être "actives" (sélectionnées).

Lors de l'exécution de la macro de PT, quand on arrive à l'instruction
.Cells(Rows.Count, 6).End(xlUp)(2) = ActiveCell(1, -8)
quelle est censée être la cellule active ? Et cette cellule est censée être dans quelle feuille ?

Si on sélectionne une cellule, par exemple, de la colonne F, forcément la macro va planter.
Est-ce "normal" ? Autrement dit as-tu prévu ce cas et son traitement, dans ton vrai fichier ?




Dans la macro de PT, je ne vois pas à quoi servent les quatre premières instructions. :(
As-tu une explication sur ce point ?

VB:
Sub test()
'
    Set sh = ActiveSheet
    Application.ScreenUpdating = False
    Application.Goto Worksheets("transfert").Cells(Rows.Count, "A").End(xlUp).Offset(1)
    sh.Activate

    With Sheets("transfert")

        .Cells(Rows.Count, 1).End(xlUp)(2) = ActiveCell(1, 2).Value                 ' .Text
        .Cells(Rows.Count, 2).End(xlUp)(2) = ActiveCell                             ' date RdV
        .Cells(Rows.Count, 3).End(xlUp)(2) = Date                                   ' date appel
        .Cells(Rows.Count, 6).End(xlUp)(2) = ActiveCell(1, -8)                      ' nom prospect

        If ActiveCell(1, -5) <> "" Then
            .Cells(Rows.Count, 7).End(xlUp)(2) = ActiveCell(1, -5)                  ' tél prospect
        Else
            .Cells(Rows.Count, 7).End(xlUp)(2) = ActiveCell(1, -4)
        End If

        .Cells(Rows.Count, 8).End(xlUp)(2) = ActiveCell(1, -9)                      ' nom réseau
        .Cells(Rows.Count, 9).End(xlUp)(2).Value = Sheets("SMS RdV").Range("b6")    ' tél réseau
        .Cells(Rows.Count, 10).End(xlUp)(2).Value = Sheets("SMS RdV").Range("g4")   ' Prénom Com
        .Cells(Rows.Count, 11).End(xlUp)(2).Value = Sheets("SMS RdV").Range("d4")   ' tél Com

    End With

End Sub
 

Usine à gaz

XLDnaute Barbatruc
Bonjour,


Comme l'a dit PT, c'est absolument impossible puisqu'il ne peut y avoir qu'une seule feuille active à la fois et que seules les cellules de la feuille active peuvent être "actives" (sélectionnées).

Lors de l'exécution de la macro de PT, quand on arrive à l'instruction
.Cells(Rows.Count, 6).End(xlUp)(2) = ActiveCell(1, -8)
quelle est censée être la cellule active ? Et cette cellule est censée être dans quelle feuille ?

Si on sélectionne une cellule, par exemple, de la colonne F, forcément la macro va planter.
Est-ce "normal" ? Autrement dit as-tu prévu ce cas et son traitement, dans ton vrai fichier ?
Bjr à toi :)
J'ai tout expliqué dans le #post pécédent.
Il sufit d'ouvrir le fichier et tester pour voir que les 2 codes fonctionnent.
Pendant l'xécution des macros, on est toujours sur la feuille Appels
:)
 

Discussions similaires

Statistiques des forums

Discussions
315 126
Messages
2 116 493
Membres
112 765
dernier inscrit
SIDIANW