XL 2016 Renvoyer une valeur de cellule dans une macro

MaximeLAT

XLDnaute Nouveau
Bonjour,

Je souhaiterai renvoyer une valeur de cellule dans la macro :

C'est à dire que à la place de ma sélection A1:J48 je souhaiterai qu'il prenne en compte la valeur d'une cellule dans laquelle il y aura ma sélection variable en fonction de ce que je veux imprimer.

Sheets("etiquettes").Select
Range("A1:J48").Select
Selection.PrintOut Copies:=1, Collate:=True
ActiveWindow.SmallScroll Down:=-24

Je ne suis pas très doué en Macro 😞
 

MaximeLAT

XLDnaute Nouveau
Bonjour.
Quelle cellules de quelle feuille contiendra quoi, exactement, sur quoi baser ce qu'il y a lieu d'imprimer ?
Il faut toujours joindre un classeur modèle montrant exactement ce qu'on a et ce qu'on veut.
Bonjour, ci-joint un classeur avec ce que j'ai en réel et l'explication de ce que je voudrai. (en espérant être clair)
Merci.
 

Pièces jointes

  • Classeur 1.xlsm
    27.5 KB · Affichages: 14

patricktoulon

XLDnaute Barbatruc
Bonjour @MaximeLAT
dans le module de ta feuille données je met ceci
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 3 And Target.Row <= 10 Then [C12] = Target(1)
End Sub
dans ton module1 je met ceci

Code:
Sub impressionetiqu()
If [C12] <> "" Then Sheets("etiquettes").Range(Feuil1.[C12].Text).PrintOut Copies:=1, Collate:=True
End Sub
donc quand tu sélectionne une des cellules en C4:C10 alors C12 prend la valeur de cette cellule sélectionnée
et quand tu clique sur le bouton imprimante tu imprime l’adresse de la range inscrite en C12
 

job75

XLDnaute Barbatruc
Bonjour MaximeLAT, Bernard, patricktoulon,
VB:
Sub ImpressionEtiquettes()
    If TypeName(Evaluate([C12].Value)) <> "Range" Then MsgBox "C12 doit contenir la référence d'une plage !", 48: Exit Sub
    With Sheets("etiquettes")
        .PageSetup.PrintArea = [C12]
        .PrintPreview 'pour tester
        '.PrintOut 'pour imprimer
    End With
End Sub
A+
 

Pièces jointes

  • Classeur(1).xlsm
    27.9 KB · Affichages: 3

patricktoulon

XLDnaute Barbatruc
re
c'est marrant comme le ".value" implicite ou la non utilisation de "set" peut faire la différence
VB:
Sub test()
    MsgBox TypeName(Evaluate("A1:A10"))
    
    x = Evaluate("A1:A10")
    MsgBox "type de x :" & TypeName(x) & vbCrLf & "nombre de ligne du tableau:" & UBound(x)
    
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa