Clever-Excel-Forum

Normale Version: Daten aus Zeile kopieren und merken, später einfügen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo , es geht um folgenden Code:
Code:
Option Explicit

Sub aSpaltenSortieren()

""""""""""" Range("F2").Select
   Selection.Copy
Range("A1").Select
   ActiveSheet.Paste""""""""""""""
   



 ActiveSheet.Range("A1,C1,E1,F1,H1,I1,J1,K1,L1").EntireColumn.Delete 'löschen von Spalten
 ActiveSheet.Rows("1:2").Insert             ' Spalte einfügen ( 1 und 2 )
 ActiveSheet.Range("A7:D7").AutoFilter        ' Spalten A bis D filtern
                 
 ActiveSheet.Range("A7:D7").Interior.ColorIndex = 42   'hellblau Zellen markieren alle in A7 bis D7

Columns("A:D").EntireColumn.AutoFit ' automatische Spaltenbreite festlegen
Range("D7").Select
   ActiveCell.FormulaR1C1 = "APZ"   ' das Wort APZ in Celle D7 einfügen




   
   

Dim BTxt As String
  BTxt = InputBox("Bitte das betroffene Werk eingeben:", "-")
  If BTxt = "" Then Exit Sub
  Range("A2").Value = BTxt
 
                                                                           ' Öffnet ein Eingabefeld, die Eingabe wird dann in Zeile A2 "geschrieben"



Range("A1:H7").Select
   Selection.Font.Bold = True
   Range("A1:H7").Select
   Range("A2").Activate

                                                                           ' Von Zeile A1 bis H7, wird der ganze Bereich, falls Worte vorhanden sind , fett geschrieben


  Columns("C:C").Select
   With Selection
       .HorizontalAlignment = xlCenter
       .VerticalAlignment = xlBottom
       .WrapText = False
       .Orientation = 0
       .AddIndent = False
       .IndentLevel = 0
       .ShrinkToFit = False
       .ReadingOrder = xlContext
       .MergeCells = False                                                 ' Spalte C ( komplett ) wird zentriert
       
   End With
       
       
         Columns("D:D").Select
   With Selection
       .HorizontalAlignment = xlCenter
       .VerticalAlignment = xlBottom
       .WrapText = False
       .Orientation = 0
       .AddIndent = False
       .IndentLevel = 0
       .ShrinkToFit = False
       .ReadingOrder = xlContext
       .MergeCells = False
                                               
       
End With


  With ActiveWindow
        .SplitRow = Range("8:8").Row - 1
        .SplitColumn = Range("8:8").Column - 1
        .FreezePanes = True
    End With                                                           'friert den Bereich bis 7 ein
   


Range("A7:D257").Select
   Selection.Borders(xlDiagonalDown).LineStyle = xlNone
   Selection.Borders(xlDiagonalUp).LineStyle = xlNone
   With Selection.Borders(xlEdgeLeft)
       .LineStyle = xlContinuous
       .ColorIndex = 0
       .TintAndShade = 0
       .Weight = xlThin
   End With
   With Selection.Borders(xlEdgeTop)
       .LineStyle = xlContinuous
       .ColorIndex = 0
       .TintAndShade = 0
       .Weight = xlThin
   End With
   With Selection.Borders(xlEdgeBottom)
       .LineStyle = xlContinuous
       .ColorIndex = 0
       .TintAndShade = 0
       .Weight = xlThin
   End With
   With Selection.Borders(xlEdgeRight)
       .LineStyle = xlContinuous
       .ColorIndex = 0
       .TintAndShade = 0
       .Weight = xlThin
   End With
   With Selection.Borders(xlInsideVertical)
       .LineStyle = xlContinuous
       .ColorIndex = 0
       .TintAndShade = 0
       .Weight = xlThin
   End With
   With Selection.Borders(xlInsideHorizontal)
       .LineStyle = xlContinuous
       .ColorIndex = 0
       .TintAndShade = 0
       .Weight = xlThin
   End With



End Sub
Ich möchte den Wert aus der URsprungstabelle ( Range("F2").Select
   Selection.Copy
Range("A1").Select
   ActiveSheet.Paste)


nachdem alles formatiert ist, in Zeile A1 einfügen.

Sozusagen dass sich Excel , den wert in F2 "merkt " ( kann man einfach eine Variable nehmen, diese als wert von F2 bestimmen und spatter dann einfach A1 = Variable?)
Gruß!    
Hi,

ja, das kann man. :21:



[edit]
Zitat:
Code:
Range("F2").Select
   Selection.Copy
Range("A1").Select
   ActiveSheet.Paste

das geht kürzer:
Code:
Range("F2").Copy
Range("A1").Paste

oder noch kürzer:
Code:
Range("F2").Copy Range("A1")

mit Variable geht es so:
Code:
Variable = Range("F2").Value
...
Range("A1").Value = Variable

geht jeweils auch ohne .Value, ist aber übersichtlicher und sicherer mit.
Vielen Dank für deine schnelle Antwort !

Vorher muss ich noch etwas eingeben oder?
So funktioniert es nämlich leider nicht :(


Habe es gelöst !!


Code:
Dim Variable As Variant                                                                   ' Varibale wird bestimmt, sodass in A1 der Firmenname steht

    Variable = Workbooks("Moa Makro.xlsm").Worksheets("zvalue01").Range("F2").Value

    If Variable = "" Then
        MsgBox """A1"" Kein Firmenname vorhanden !"
    Else
        MsgBox """A1""=" & Variable
    End If

Wie kann ich eine 2. Variable festlegen?




Besten Dank und viele Grüße !
Hi,

Du bist doch jetzt auch schon eine Weile im Forum und hast 55 Beiträge geschrieben, da sollte Dir doch bekannt sein, daß dies:
(06.07.2017, 09:55)technoente schrieb: [ -> ]So funktioniert es nämlich leider nicht :(
keine hilfreiche Aussage ist.

Was geschieht? Welche Meldung kommt? Ist im Code etwas markiert?

Bei mir geht es mit Deinem Code.

Du hast es so eingefügt?
Option Explicit

Sub aSpaltenSortieren()
   Dim BTxt As String
   Dim varVariable As Variant
   
   varVariable = Range("F2").Value
   
   ActiveSheet.Range("A1,C1,E1,F1,H1,I1,J1,K1,L1").EntireColumn.Delete 'löschen von Spalten 
   ActiveSheet.Rows("1:2").Insert             ' Spalte einfügen ( 1 und 2 ) 
   ActiveSheet.Range("A7:D7").AutoFilter        ' Spalten A bis D filtern 
   
   ActiveSheet.Range("A7:D7").Interior.ColorIndex = 42   'hellblau Zellen markieren alle in A7 bis D7 
   
   Columns("A:D").EntireColumn.AutoFit ' automatische Spaltenbreite festlegen 
   Range("D7").FormulaR1C1 = "APZ"   ' das Wort APZ in Celle D7 einfügen 
   
   BTxt = InputBox("Bitte das betroffene Werk eingeben:", "-")
   If BTxt = "" Then Exit Sub
   Range("A2").Value = BTxt
   
   ' Öffnet ein Eingabefeld, die Eingabe wird dann in Zeile A2 "geschrieben" 
   Range("A1:H7").Font.Bold = True
   Range("A1:H7").Select
   Range("A2").Activate
   
   ' Von Zeile A1 bis H7, wird der ganze Bereich, falls Worte vorhanden sind, fett geschrieben 
   With Columns("C:C")
      .HorizontalAlignment = xlCenter
      .VerticalAlignment = xlBottom
      .WrapText = False
      .Orientation = 0
      .AddIndent = False
      .IndentLevel = 0
      .ShrinkToFit = False
      .ReadingOrder = xlContext
      .MergeCells = False                                                 ' Spalte C ( komplett ) wird zentriert 
   End With
   
   With Columns("D:D")
      .HorizontalAlignment = xlCenter
      .VerticalAlignment = xlBottom
      .WrapText = False
      .Orientation = 0
      .AddIndent = False
      .IndentLevel = 0
      .ShrinkToFit = False
      .ReadingOrder = xlContext
      .MergeCells = False
   End With
   
   With ActiveWindow
      .SplitRow = Range("8:8").Row - 1
      .SplitColumn = Range("8:8").Column - 1
      .FreezePanes = True
   End With                                                           'friert den Bereich bis 7 ein 
   
   With Range("A7:D257")
      .Borders(xlDiagonalDown).LineStyle = xlNone
      .Borders(xlDiagonalUp).LineStyle = xlNone
      With .Borders(xlEdgeLeft)
         .LineStyle = xlContinuous
         .ColorIndex = 0
         .TintAndShade = 0
         .Weight = xlThin
      End With
      
      With .Borders(xlEdgeTop)
         .LineStyle = xlContinuous
         .ColorIndex = 0
         .TintAndShade = 0
         .Weight = xlThin
      End With
      
      With .Borders(xlEdgeBottom)
         .LineStyle = xlContinuous
         .ColorIndex = 0
         .TintAndShade = 0
         .Weight = xlThin
      End With
      
      With .Borders(xlEdgeRight)
         .LineStyle = xlContinuous
         .ColorIndex = 0
         .TintAndShade = 0
         .Weight = xlThin
      End With
      
      With .Borders(xlInsideVertical)
         .LineStyle = xlContinuous
         .ColorIndex = 0
         .TintAndShade = 0
         .Weight = xlThin
      End With
      
      With .Borders(xlInsideHorizontal)
         .LineStyle = xlContinuous
         .ColorIndex = 0
         .TintAndShade = 0
         .Weight = xlThin
      End With
   End With
   
   Range("A1").Value = varVariable
   
End Sub
Hi Ralf,

es wäre gut gewesen, wenn Du auch mal zurückgeguckt hättest. Auch Andere editieren ihre Beiträge. Wink

Gruß Uwe
Hallo ,

  
Code:
   Dim Variable As Variant                        ' Varibale wird bestimmt, sodass in A1 der Firmenname steht
     Variable = Workbooks("Moa Makro.xlsm").Worksheets("zvalue01").Range("F2").Value
     If Variable = "" Then
         MsgBox """A1"" Kein Firmenname vorhanden !"
     Else
         MsgBox """A1""=" & Variable
     End If
   
    
     Dim varVariable    As Variant
    varVariable = Workbooks("Moa Makro.xlsm").Worksheets("zvalue01").Range("E1").Value
   

Und zum schluss dann

Range("A5").Select
    ActiveCell.FormulaR1C1 = "Übersicht APZ - " + varVariable


Als Fehler kommt :
"LAUFZEITFEHLER "13":
TYPEN UNVERTRÄGLICH

Grüße und vielen Dank !
Hi,

ich habe die Borders-Formatierung etwas verkürzt, ausgehend vom ersten Makro:
Option Explicit

Sub aSpaltenSortieren()
   Dim BTxt As String
   Dim varVariable As Variant
   
   varVariable = Range("F2").Value
   
   ActiveSheet.Range("A1,C1,E1,F1,H1,I1,J1,K1,L1").EntireColumn.Delete 'löschen von Spalten 
   ActiveSheet.Rows("1:2").Insert             ' Spalte einfügen (1 und 2) 
   ActiveSheet.Range("A7:D7").AutoFilter        ' Spalten A bis D filtern 
   
   ActiveSheet.Range("A7:D7").Interior.ColorIndex = 42   'hellblau Zellen markieren alle in A7 bis D7 
   
   Columns("A:D").EntireColumn.AutoFit ' automatische Spaltenbreite festlegen 
   Range("D7").Value = "APZ"           ' das Wort APZ in Celle D7 einfügen 
   
   BTxt = InputBox("Bitte das betroffene Werk eingeben:", "-")
   If BTxt = "" Then Exit Sub
   Range("A2").Value = BTxt
   
   ' Öffnet ein Eingabefeld, die Eingabe wird dann in Zeile A2 "geschrieben" 
   Range("A1:H7").Font.Bold = True
   Range("A1:H7").Select
   Range("A2").Activate
   
   ' Von Zeile A1 bis H7, wird der ganze Bereich, falls Worte vorhanden sind, fett geschrieben 
   With Columns("C:D")
      .HorizontalAlignment = xlCenter
      .VerticalAlignment = xlBottom
      .WrapText = False
      .Orientation = 0
      .AddIndent = False
      .IndentLevel = 0
      .ShrinkToFit = False
      .ReadingOrder = xlContext
      .MergeCells = False                                                 ' Spalte C und D (komplett) wird zentriert 
   End With
   
   With ActiveWindow
      .SplitRow = Range("8:8").Row - 1
      .SplitColumn = Range("8:8").Column - 1
      .FreezePanes = True
   End With                                                           'friert den Bereich bis 7 ein 
   
   With Range("A7:D257")
      .Borders(xlDiagonalDown).LineStyle = xlNone
      .Borders(xlDiagonalUp).LineStyle = xlNone
      
      With .Borders
         .LineStyle = xlContinuous
         .ColorIndex = 0
         .TintAndShade = 0
         .Weight = xlThin
      End With
   End With
   
   Range("A1").Value = varVariable
   
End Sub

Wenn Du keine Formel in die Zelle schreiben willst, benötigst Du das .FormulaR1C1 nicht!
(06.07.2017, 11:49)technoente schrieb: [ -> ]Und zum schluss dann

Range("A5").Select
    ActiveCell.FormulaR1C1 = "Übersicht APZ - " + varVariable

Teste mal:
Range("A5").Value = "Übersicht APZ - " & varVariable
VIELEN LIEBEN DANK !!!!
Das wars .

Hatte vorher noch alles umgestellt, das erste auf  Also DIM Variable as String ( da nur Buchstaben) und das 2. As Long da nur zahlen . aber deins hat geholfen !
Vielen dank !!!!
Hi,

(06.07.2017, 12:04)technoente schrieb: [ -> ]Hatte vorher noch alles umgestellt, das erste auf  Also DIM Variable as String ( da nur Buchstaben) und das 2. As Long da nur zahlen . aber deins hat geholfen !

Allgemein ist es sinnvoll, die Variablendimensionierung an den Anfang des Codes zu setzen und vor allem sprechende Variablennamen (varFirma, varWerk, strFirma, lngZähler... für Variant, String oder Long) zu verwenden.
Seiten: 1 2