/ / Excel / jak podłączyć przyciski w różnych arkuszach - excel, vba, excel-vba

Excel / jak podłączyć przyciski w różnych arkuszach - excel, vba, excel-vba

mój pierwszy przycisk (Schaltfläche 83) mój pierwszy przycisk (Schaltfläche 83)

wprowadź opis obrazu tutaj Inny przycisk, który chcę aktywować vom "Hirata Bestellformular" Pierwsza opcja: górna niebieska Druga opcja: duża (activexelement)

Chcę aktywować jeden przycisk z innego arkusza, ponieważ chcę wykonać poniższy kod w arkuszu roboczym "Teileliste" bezpośrednio z "Hirata Bestellformular". Jak mogę to zrobić?

Sub Teileliste_generieren()

" zaawansowany filtr

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

"Wenn 0 puste

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

Odpowiedzi:

0 dla odpowiedzi № 1

Mogę spróbować. :)

Jeśli cię rozumiem, chcesz móc naciskać Teileliste generieren od Hirata Bestellformular. Oznacza to, że nadal chcesz przycisk Schaltfläche 83 zrób to samo co Teileliste generieren, ale nie chcesz przełączać arkuszy, aby nacisnąć przycisk?

Następnie Wierzę, że twój problem jest w twoim Range.Select sprawozdania.

W modelu obiektowym Excels VBA, jeśli zadzwonisz Range("B50:B51").Select z Teileliste-sheet, to automatycznie wybierze ten zakres w Teileliste-arkusz. Jeśli to zrobisz Hirata Bestellformular, następnie wybierze Range("B50:B51") od Hirata Bestellformular zamiast.

To znaczy: to powinien pracować, jeśli zmienisz wszystkie swoje Range("...").Select do Worksheets("Teileliste").Range("...").Select

Ma to związek z Model obiektowy Excel VBA.

Jestem prawie pewien, że powinno to wystarczyć, ale zależy to od miejsca, w którym znajduje się twój kod (w obrębie poszczególnych arkuszy lub modułu). Spróbuj zastąpić Range.Selects i zobacz, czy to pomaga. :)


0 dla odpowiedzi nr 2

Tylko krótka wskazówka:

Możesz kliknąć prawym przyciskiem myszy przycisk Schaltfläche 83 i przypisać do niego makro. Tak więc w twoim przypadku możesz kliknąć prawym przyciskiem myszy -> przypisz makro -> wybierz

Teileliste_generieren()

Jeśli twój kod radzi sobie z wywołaniem na różnych arkuszach, to zadziała.

// z mojego iPhone'a


0 dla odpowiedzi № 3
Sub Teileliste_generieren2()

" zaawansowany filtr

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 puste

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

Napis końcowy

Po prostu wymieniłem go wszędzie, tak jak powiedziałeś idziała, jeśli aktywuję makro z "Teileliste", ale pojawia się błąd, gdy aktywuję go z "Hiraa Bestellformular", mówiąc: Error1004 on Select- Metoda Range-Object nie może być wykonana: / Inna sugestia? :)