Vba ActiveCell

Calvus

XLDnaute Barbatruc
Bonsoir le Forum,

Pourquoi ce code fonctionne t'il ?
Code:
c = Sheets("Feuil1").Range("A2").Value
MsgBox (c)

Et pas celui-ci ?
Code:
c = Sheets("Feuil1").ActiveCell.Value
MsgBox (c)

ActiveCell étant la cellule A2 bien évidemment.

Merci.
 

Si...

XLDnaute Barbatruc
Re : Vba ActiveCell

re

- Avec Plage.Copy Cellule on copie la plage (et contenus, et formules et formats) à partir de la cellule citée.
- Avec Plage.Copy on copie la plage dans le presse-papier (équivalent au Ctrl C). Ensuite, avec .Paste, on ressort ce que l’on veut (soit valeur, soit formule, soit format )

- J’ai parlé de la page de code du bouton pour ne pas avoir à faire référence au Range de la feuille
(exemple : Feuil1.Plage= "", Sheets(nom de l’onglet). Plage = "", With Feuil1 : Plage= "" : End With peuvent y être remplacés simplement par Plage= "")

- Pour mon mauvais de mot dérivé du titre de film « Snatch, Tu braques ou tu raques »,
un antislash (\) manquant ou en trop dans un chemin et c’est le clash (rupture, désaccord) avec la macro.
 

Calvus

XLDnaute Barbatruc
Re : Vba ActiveCell

Re,

Merci pour les explications.

Par contre, avec le dernier code que tu m'as envoyé, post#29, la copie se fait correctement dans le classeur de destination mais pas sur le Pdf, qui enregistre la copie du classeur de destination....

J'imagine que c'est à cause de
Code:
Feuil1.ExportAsFixedFormat Type:=0, Filename:=Chemin, Quality:=0, _
           IncludeDocProperties:=1, IgnorePrintAreas:=0, OpenAfterPublish:=1

Et si je remplace Feuil1 par Selection, ça n'enregistre que la cellule correspondant à la cible (Vers_où).

Tu sais comment faire ?
Et toi 00, tu sais ? :):)

Merci
 

Si...

XLDnaute Barbatruc
Re : Vba ActiveCell

Salut

A noter que « Selection » correspond à la dernière plage sélectionnée (sur le classeur ou par programmation) et dans ton cas ce n’est qu’une cellule. Voilà pourquoi je suis allé au plus large (Feuil1).

Si tu me proposes un canot de sauvetage, je pourrais réclamer la compagnie de :D:D, mais pour ne plus naviguer à vue, surtout n’oublie pas de livrer une boussole et le cap à atteindre.
 

Calvus

XLDnaute Barbatruc
Re : Vba ActiveCell

Bonjour le Forum,

DoubleZero à dit:
A présent, moi avoir besoin d'une bouée !

Alors on est deux !

Alors voici. Hier je suis arrivé à mes fins avec ce code.


VB:
Sub Envoi_Pdf()
Dim Planning As Workbook, Vers_où As String, fichier As String, Dossier As String, Chemin As String 'ajout

Application.ScreenUpdating = False

Reponse = MsgBox("Avez vous sélectionné un onglet et une date ?", vbYesNo + vbQuestion, "Sélection Onglet")
If Reponse = vbYes = no Then
Exit Sub
End If
Vers_où = Selection.Text

'Création nouvelle feuille
    Set Noufeuil = Sheets.Add(After:=Sheets(Sheets.Count))
        ActiveSheet.Name = Sheets("Feuil1").Range("B5") & " " & Sheets("Feuil1").Range("B2")
                
'Ouverture du classeur
    Set Planning = Workbooks.Open("C:\Users\Toto\Documents\Toto.xlsx")

ActiveWorkbook.Sheets(Vers_où).Activate
Range("B2:H34").Copy ThisWorkbook.ActiveSheet.Range("B2")
Planning.Close False

ActiveSheet.Range("B2:H36").Select
    
    With ActiveSheet
    fichier = "\" & Range("B2") & " Mjc.pdf"
    Dossier = "C:\Users\Toto\Documents\Excel"
    Chemin = Dossier & fichier
    End With

Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin, _
    Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True

Feuil1.Select

Application.ScreenUpdating = True

End Sub

Miracle, ça fonctionne ! Même la boite de dialogue. Et tout seul MsieursDames !! :cool:

Pourriez vous me dire, pour ceux qui suivent ou que ça intéresse, ce que je peux améliorer dans ce code ?
Si j'ai oublié des déclarations ou si je peux faire plus court ou efficace ?

Si, je viens de lire ton dernier post, et là ça m'éclaire vraiment. Je vais donc regarder à nouveau avec cet élément supplémentaire de compréhension. Donc à nouveau merSi :):)

Concernant le cap, j'y arrive petit à petit.
Donc création d'une nouvelle feuille, copie de la zone sélectionnée, et enregistrement du Pdf correspondant.

Me manquent, la prochaine étape donc, l'envoi d'un mail par sélection d'une adresse dans une cellule de mon classeur, ainsi que la désignation complète du répertoire à partir du même classeur. Encore quelques heures d'insomnie en perspective ! C'est mieux pour ne pas sombrer dans cette tempête ! :)
 

DoubleZero

XLDnaute Barbatruc
Re : Vba ActiveCell

Bonjour, le Fil :), le Forum,

... Miracle, ça fonctionne ! Même la boite de dialogue. Et tout seul MsieursDames...

Bravo :D M'sieur !

... Pourriez vous me dire... Si j'ai oublié des déclarations...

Pour avoir la certitude que chaque variable est correctement déclarée, placer en tête de chaque module :

Code:
Option Explicit ' <- ceci
Sub toto()
'variables...
'suite du code...
End Sub

...Me manquent, la prochaine étape donc, l'envoi d'un mail par sélection d'une adresse dans une cellule de mon classeur, ainsi que la désignation complète du répertoire à partir du même classeur...

Peut-être trouveras-tu ton bonheur dans cette discussion.

Bon courage et à bientôt :):)
 

Calvus

XLDnaute Barbatruc
Re : Vba ActiveCell

Bonjour le forum,

Miracle, ça fonctionne ! Même la boite de dialogue. Et tout seul MsieursDames !! :cool:

Enfin je rectifie. Car des parties de code m'ont été données ou inspirées par toi Double Zéro, ainsi que l'aide de Si et Dranreb pour comprendre (enfin je crois..) les différences d'objet et propriétés.

Option Explicit, je le savais. Pourquoi ne l'ai-je pas fait ? Quel idiot !

Merci pour le lien, je vais regarder ça.

Bonne journée et à bientôt. ;);)
 

Lone-wolf

XLDnaute Barbatruc
Re : Vba ActiveCell

Bonjour Calvus, DoubleZero, Si..., Dranreb :D

@ Calvus: une autre façon de créer un PDF en PJ, auteur Ron de Bruin.

Clique sur l'image PDF ensuite donne un nom au document.


Très bon dimanche à tous.


Amicalement Lone-wolf :cool:
 

Pièces jointes

  • Création Pdf.xls
    134.5 KB · Affichages: 31
Dernière édition:

Calvus

XLDnaute Barbatruc
Re : Vba ActiveCell

Bonsoir le 00, Lone-wolf, le fil,

Merci pour vos informations précieuses.
J'ai déjà jeté un œil, et ne vous raconte pas le suite ! Parlons seulement de l'indigestion ! :)

J'y pige pas un godet de boule de pelle à neige du désert, mais c'est pas grave. Je vais me familiariser.

C'est vraiment intéressant en tout cas. Yapluka !

Merci et bonne soirée. :)


EDIT : @ Lonewolf. Ça a l'air de fonctionner vite ce truc. Je vais essayer d'adapter à mon fichier, mais je risque de revenir demander de l'aide..
Merci, et merci pour les autres macros :)

@ 00
Double Zero à dit:
ton logiciel est Outlook

Pourquoi ? Il y a encore des gens qui utilisent d'autres logiciels de messagerie ? ;););):p:p:p
A bientôt:p:):):)
 
Dernière édition:

DoubleZero

XLDnaute Barbatruc
Re : Vba ActiveCell

Re-bonjour, bonjour, Lone-wolf,

Bonsoir le 00... Il y a encore des gens qui utilisent d'autres logiciels de messagerie ? ;););):p:p:p:p:):):)

attachment.php


Pour tout message, "le 00" pas connaître mieux que le tam-tam, par temps de pluie, ou la fumée, par temps sec !

A bientôt :p;):D:):p:cool::p
 

Pièces jointes

  • le 00.gif
    le 00.gif
    93.7 KB · Affichages: 46

Calvus

XLDnaute Barbatruc
Re : Vba ActiveCell

Re bounour !

Tu les trouves où toutes tes images 00 ?

C'est impressionnant la collection que tu as.
Celui-ci est très mignon en tout cas. :)
Mais il devrait se mettre à Outlook, il aurait l'air moins penaud ! :p;)

A bientôt :):)
 

Discussions similaires

Statistiques des forums

Discussions
314 223
Messages
2 107 498
Membres
109 844
dernier inscrit
odyn