2017-08-07 11 views
0

my first button (Schaltfläche 83) meine erste Taste (schaltfläche 83)Excel/wie Tasten auf verschiedene Arbeitsblatt verbinden

enter image description here Andere Taste, die ich will vom "Hirata Bestellformular" ersten Option aktivieren: die obere blaue zweite Option : der Große (activexelement)

Ich möchte einen Button aus einem anderen Arbeitsblatt aktivieren, da ich den unten stehenden Code direkt aus "Hirata Bestellformular" auf dem Arbeitsblatt "Teileliste" ausführen möchte. Wie kann ich das erreichen?

Sub Teileliste_generieren() 

'erweiterten Filter

Sheets("Hirata Bestellformular").Range("Tabelle3[[#Headers],[#Data]]"). _ 
    AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range("B50:B51"), _ 
    CopyToRange:=Range("B54:B55"), Unique:=False 

    Range("B5").Select 
ActiveCell.FormulaR1C1 = _ 
    "=IFERROR(LEFT(R[50]C,FIND(CHAR(10),R[50]C)-1),R[50]C)" 
Range("B6").Select 
ActiveCell.FormulaR1C1 = _ 
    "=IFERROR(LEFT(R[50]C,FIND(CHAR(10),R[50]C)-1),R[50]C)" 
Range("B5:B6").Select 
Selection.AutoFill Destination:=Range("B5:B26"), Type:=xlFillDefault 
Range("B5:B26").Select 
Range("D22").Select 

'Formatierung Tabelle

Range("B3").Select 
With Selection.Interior 
    .Pattern = xlSolid 
    .PatternColorIndex = xlAutomatic 
    .Color = 16763955 
    .TintAndShade = 0 
    .PatternTintAndShade = 0 
End With 
Range("B4").Select 
With Selection.Interior 
    .Pattern = xlSolid 
    .PatternThemeColor = xlThemeColorAccent3 
    .Color = 16777215 
    .TintAndShade = 0 
    .PatternTintAndShade = 0.799981688894314 
End With 
Range("B5").Select 
With Selection.Interior 
    .Pattern = xlSolid 
    .PatternColorIndex = xlAutomatic 
    .Color = 9868950 
    .TintAndShade = 0 
    .PatternTintAndShade = 0 
End With 
Range("B6").Select 
With Selection.Interior 
    .Pattern = xlSolid 
    .PatternColorIndex = xlAutomatic 
    .Color = 15395562 
    .TintAndShade = 0 
    .PatternTintAndShade = 0 
End With 
Range("B5:B6").Select 
Selection.AutoFill Destination:=Range("B5:B26"), Type:=xlFillDefault 
Range("B5:B26").Select 
Range("D20").Select 

' If 0 blank

Range("B5:B26").Select 
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _ 
    Formula1:="=0" 
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority 
With Selection.FormatConditions(1).Font 
    .ThemeColor = xlThemeColorDark1 
    .TintAndShade = 0 
End With 
With Selection.FormatConditions(1).Interior 
    .PatternColorIndex = xlAutomatic 
    .ThemeColor = xlThemeColorDark1 
    .TintAndShade = 0 
End With 
Selection.FormatConditions(1).StopIfTrue = False 
Range("C22").Select 

' Exportieren 

    ThisWorkbook.Sheets("Teileliste").Copy 

Application.GetSaveAsFilename 

End Sub 
+0

There is a lot of code here, whilst it probably isn't all relevant to your question. Please reduce the code to contain only the relevant parts. Also please specify what button you want to use, and what code that button contains. If it activates a sub, then there is no need to click the button with a button, but just call the code. – Luuklag

Antwort

0

ich versuchen kann. :)

Wenn ich Sie verstehe, möchten Sie Teileliste generieren von Hirata Bestellformular drücken können. Das bedeutet, dass Sie die Taste immer noch auf die gleiche Weise wie Teileliste generieren machen wollen, aber Sie wollen nicht Blätter wechseln, um die Taste zu drücken?

Dann Ich glaube, Ihr Problem ist in Ihren Range.Select Aussagen.

In Zeichnet VBA-Objektmodell, wenn Sie Range("B50:B51").Select vom -Blatt Teileliste nennen, wird es wählt dann automatisch diesen Bereich in Teileliste -Blatt. Wenn Sie es von Hirata Bestellformular tun, dann wählt es Range("B50:B51") von Hirata Bestellformular stattdessen. Das bedeutet

: es sollte Arbeit, wenn Sie alle Ihre Range("...").Select-Worksheets("Teileliste").Range("...").Select

mit dem Excel VBA Object Model.

Ich bin mir ziemlich sicher, dass sollte es tun, aber es Dies hat zu tun ändern, hängt wo sich Ihr Code befindet (innerhalb der spezifischen Blätter oder in einem Modul). Versuchen Sie, die Range.Selects zu ersetzen und sehen Sie, ob es hilft.:)

+0

Thank you! every idea is welcome:) I'll try it now. –

+0

I answered your comment in another comment:) –

0

Nur ein kurzer Hinweis:

Sie können mit der rechten Maustaste auf die Schaltfläche Schaltfläche 83 klicken und ihr ein Makro zuweisen. Also in Ihrem Fall können Sie einfach mit der rechten Maustaste -> zuweisen Makro ->

Teileliste_generieren() 

wählen Wenn Ihr Code mit auf verschiedenen Blättern genannt umgehen können wird, dann wird es funktionieren.

// von My iPhone

+0

well that's exactly the problem:/ my macro won't work from a different sheet. Do you have another hint how I can manage my problem? –

+0

My comment is too long so I will post it in an anser. :) –

+0

May you want the document so you have a better insight? If you give me our mail I can send it to you:) Of course just If its not much of a trouble for you and you dont mind it. –

0
Sub Teileliste_generieren2() 

' advanced filter

Sheets("Hirata Bestellformular").Range("Tabelle3[[#Headers],[#Data]]"). _ 
    AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Worksheets("Teileliste").Range("B50:B51"), _ 
    CopyToRange:=Worksheets("Teileliste").Range("B54:B55"), Unique:=False 

    Worksheets("Teileliste").Range("B5").Select 
ActiveCell.FormulaR1C1 = _ 
    "=IFERROR(LEFT(R[50]C,FIND(CHAR(10),R[50]C)-1),R[50]C)" 
Worksheets("Teileliste").Range("B6").Select 
ActiveCell.FormulaR1C1 = _ 
    "=IFERROR(LEFT(R[50]C,FIND(CHAR(10),R[50]C)-1),R[50]C)" 
Worksheets("Teileliste").Range("B5:B6").Select 
Selection.AutoFill Destination:=Worksheets("Teileliste").Range("B5:B26"), Type:=xlFillDefault 
Worksheets("Teileliste").Range("B5:B26").Select 
Worksheets("Teileliste").Range("D22").Select 

'formatierung tabelle

Worksheets("Teileliste").Range("B5").Select 
With Selection.Interior 
    .Pattern = xlSolid 
    .PatternColorIndex = xlAutomatic 
    .ThemeColor = xlThemeColorDark2 
    .TintAndShade = -0.249977111117893 
    .PatternTintAndShade = 0 
End With 
Worksheets("Teileliste").Range("B6").Select 
With Selection.Interior 
    .Pattern = xlSolid 
    .PatternColorIndex = xlAutomatic 
    .ThemeColor = xlThemeColorAccent4 
    .TintAndShade = 0.799981688894314 
    .PatternTintAndShade = 0 
End With 
Worksheets("Teileliste").Range("B5:B6").Select 
Selection.AutoFill Destination:=Worksheets("Teileliste").Range("B5:B26"), Type:=xlFillDefault 
Worksheets("Teileliste").Range("B5:B26").Select 
Worksheets("Teileliste").Range("C18").Select 

' Wenn 0 blank

Worksheets("Teileliste").Range("B5:B26").Select 
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _ 
    Formula1:="=0" 
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority 
With Selection.FormatConditions(1).Font 
    .ThemeColor = xlThemeColorDark1 
    .TintAndShade = 0 
End With 
With Selection.FormatConditions(1).Interior 
    .PatternColorIndex = xlAutomatic 
    .ThemeColor = xlThemeColorDark1 
    .TintAndShade = 0 
End With 
Selection.FormatConditions(1).StopIfTrue = False 
Worksheets("Teileliste").Range("C22").Select 

' Exportieren 

    ThisWorkbook.Sheets("Teileliste").Copy 

Application.GetSaveAsFilename 

End Sub

I just replaced it everywhere like you said and it works if I aktivate the makro from "Teileliste" but there s error when I acctivate it from "Hiraa Bestellformular" saying: Error1004 he Select- Method of the Range-Object could not be executed:/ Another suggestion?:)

Verwandte Themen