Zelleninhalt in jeweilige Zelle Kopieren

  • #1
E

Elhamplo

Aktives Mitglied
Themenersteller
Dabei seit
21.09.2005
Beiträge
26
Reaktionspunkte
0
Hallo,

ich brauch mal wieder Eure Hilfe!!!!

Ich hab zwei Excel Tabellen Tabelle A und B. In der Tabelle B habe ich auf dem Tabellen Blatt 2 ein Formular entworfen. In der Zelle E 34 eine steht eine Bezugsnummer die aus der Tabelle A genommen wird. Durch Eingabe der Bezugsnummer wird automatisch die Adresse usw. in das Formular eingefügt. Das Formular soll dann auch gedruckt werden.

Jetzt meine Frage: Ist es möglich wenn in Tabelle B in dem Formular die Bezugnummer 1500 eingegeben wird (wenn möglich und gedruckt wurde) das automatisch in Tabelle A in der Zeile mit der Bezugsnummer (Bezugsnummer steht in Spalte A) in Spalte Z der Satz steht:Das Formular wurde erzeugt., um später auch zu kontrollieren ob das Formular mit der Bezugsnummer erzeugt wurde.

Danke für Eure Mühe!!!!

Gruß

Elhamplo
 
  • #2
Das ist möglich
Schreib in Z1 folgendes: =wenn(istfehler(sverweis(A1;Tabelle2!$C$5;1;falsch));;Das Formular wurde erzeugt.)
Statt $C$5 gibst du die Zelle deiner Referenznummer an (mit Dollar-Zeichen!)
--> Formel runterziehen.

Dann mußt du für die Zelle in Spalte Z den Wert festschreiben. Am besten packst du den Druckvorgang und das Festschreiben der Werte in ein Makro und legst es auf einen Button in deinem Formular.
 
  • #3
Und hier ein Makro für den Button, den du dir auf das Tabellenblatt mit dem Formular lötest.
Als Zelle für den Bezug habe ich deine Obsessionszelle C5 genommen.
Den Blattnamen Tabelle1 mußt du entsprechend angleichen.
Code:
Sub Drucken_und_dokumentieren()
  Dim BezugNr As String
  BezugNr = ActiveSheet.Range(C5)
  
'Drucken:
  ActiveWindow.SelectedSheets.PrintOut Copies:=1
  
'In Tabelle 1 wechseln und die Bezugnummer suchen
  Sheets(Tabelle1).Select
  Columns(A:A).Select
  Selection.Find(What:=BezugNr, After:=ActiveCell, LookIn:=xlFormulas, _
    LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
    MatchCase:=False).Activate
  
'In der Zeile auf Spalte Z gehen, (also Null Zeilen nach unten und 25 Spalten nach rechts)
  ActiveCell.Offset(0, 25).Select
  ActiveCell.FormulaR1C1 = Das Formular wurde erzeugt.
  
'Zelle kopieren und Werte einfügen
  Selection.Copy
  Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=False
    
End Sub
 
  • #4
Hey klexy,

danke für Deine Hilfe!!!!!

Läuft super der Code. Hab ausprobiert und in Zelle C5 die Zahlen geändert und muss sagen funst super, Danke!!!!

Jetzt noch eine Frage: wie funst das mit dem Code wenn nicht nur das Tebellenblatt gewechselt werden muss sondern auch die ganze Arbeitsmappe?? Das Formular ist in einer anderen Arbeitsmappe und die Eintragung das Fomular wurde gedruckt soll in eine andere Arbeitsmappe in die Tabelle 1.

Danke für Deine Hilfe!!!!

Gruß

der C5 Liebhaber

Elhamplo
 
  • #5
Hallo,

leider kann ich deiner letzten Frage nicht ganz folgen - aber ich denke das hilft dir:

Code:
Sub Drucken_und_dokumentieren()

'Laufwerk und Pfad der zu öffnenden Arbeitsmappe

    Const Lw = M:\
    Const Pfad = M:\Musterordner\Unterordner
    
    Dim BezugNr As String
    BezugNr = ActiveSheet.Range(C5)
    
'Drucken:
    ActiveWindow.SelectedSheets.PrintOut Copies:=1
    
'In neue Datei wechseln und die Bezugnummer suchen
    ChDrive Lw->Laufwerkwechsel
    ChDir Pfad->Pfadwechsel
    
    Workbooks.Open Filename:=M:\Musterordner\Unterordner\Datei.xls
    
    Application.Goto Reference:=Tabelle1!C1
    
    Selection.Find(What:=BezugNr, After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False).Activate
    
'In der Zeile auf Spalte Z gehen, (also Null Zeilen nach unten und 25 Spalten nach rechts)
    
    ActiveCell.Offset(0, 25).Select
    ActiveCell.FormulaR1C1 = Das Formular wurde erzeugt.

End Sub

Ich hoffe das passt. ;-)


Ciao


Fibo
 
  • #6
Hey Fibonacci,

danke für Deine Hilfe!!!!

Ich hab da ein Problem mit dem Code.

Wenn ich das Makro durchlaufen lasse bekomme ich einen Fehler in den Zeilen:

ChDrive Lw->Laufwerkwechsel
ChDir Pfad->Pfadwechsel

wenn ich die aus dem Code nehme funst es.

Das zweite Problem habe ich, wenn die Datei schon offen ist in dem der Satez eingefügt werden soll (Formular wurde gedruckt), da bekomme ich in der Zeile:

Workbooks.Open Filename:=M:\Musterordner\Unterordner\Datei.xls

ein Problem.

Gruß

Elhamplo
 
  • #7
Ich würde sagen, daß man
Const Lw = M:\
und
ChDrive Lw->Laufwerkwechsel
ChDir Pfad->Pfadwechsel

ganz weglassen kann.

Das Workbooks.Open Filename:=M:\Musterordner\Unterordner\Datei.xls genügt bei mir immer. Auch auf Netzwerken.

und das: Application.Goto Reference:=Tabelle1!C1 sollte doch korrekterweise auf A1 gehen, oder?

Für die Kontrolle, ob die Datei schon offen ist, gibt es einen Makro-Befehl, aber ich weiß nicht welchen.
 
  • #8
Und villeicht am Ende die Datei wieder schliessen ?

In diesem Fall:

ActiveWorkbook.Close SaveChanges:= True

Gruß Matjes :)
 
  • #9
Hallo @ all,

die Tatsache, dass ich nur mit
Code:
 Workbooks.Open Filename:=M:\Musterordner\Unterordner\Datei.xls
die Laufwerke und Ordner steuern kann ist mir neu aber bestimmt ein guter Hinweis. Man lernt halt nie aus....
=)

Bei
Code:
Application.Goto Reference:=Tabelle1!C1
habe ich eine alternative Anweisung zu deinem
Code:
  Sheets(Tabelle1).Select
  Columns(A:A).Select
gewählt. Ich denke mal der Unterschied ist nicht so wesentlich.

Ciao


Fibo
 
  • #10
Hey @ all,

Danke für Eure guten Tipps und Eure Hilfe!!!!

Ist zwar nich die eleganteste Lösung, aber ich hab das dann so gelöst:

Workbooks(Datei.xls).Activate
Sheets(Tabelle1).Select

Hab das dann so gelegt, das die datei.xls als erstes geöffnet werden muss. Vielleicht kann man ja daraus jetzt was basteln, von wegen Fehlermeldung wenn die Datei schon offen ist.

Ich danke Euch für die Hilfe

Gruß

Elhamplo
 
Thema:

Zelleninhalt in jeweilige Zelle Kopieren

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben