Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Excel Makro Problem

Frage Microsoft Microsoft Office

Mitglied: Florian86

Florian86 (Level 1) - Jetzt verbinden

17.10.2014, aktualisiert 19:07 Uhr, 1201 Aufrufe, 9 Kommentare

Hallo,

ich habe folgendes vor:

ich möchte in einer Exceldatei mit 2 Blättern auf den ersten ein kleines Formular basteln.
Dieses soll ein Button enthalten welches die eingegebenen Daten auf das 2. Tabellenblatt überträgt.

Als Link meine Datei...

https://drive.google.com/file/d/0BzQM-ZoFrfL8bVlzTzlpa0Z2WVk/view?usp=sh ...

Ich habe die Datei fast fertig nur funktioniert mein Button und das dahinterstehende Makro nicht.

Mein Code

Private Sub CommandButton1_click()
Dim wksOrig As Worksheet
Dim wksStore As Worksheet
Dim lngLastRow As Long

Set wksOrig = Worksheets("PK frisch")
Set wksStore = Worksheets("Datenmatrix")

With wksStore
lngLastRow = IIf(.Cells(Rows.Count, 1) = "", .Cells(Rows.Count, 1).End(xlUp).Row + 1, Rows.Count)
.Cells(lngLastRow, 1) = wksOrig.Range("D8")
.Cells(lngLastRow, 2) = wksOrig.Range("F8")

End With

Set wksStore = Nothing
Set wksOrig = Nothing
End Sub


Mit freundlichen Grüßen

Florian

Mitglied: Meierjo
LÖSUNG 17.10.2014, aktualisiert um 19:07 Uhr
Hallo

Also, hab mir die Tabelle mal angeschaut.
Sobald du in der Tabelle Datenmatrix in Feld A5 etwas stehen hast, werden die Werte aus der Eingabe-Box korrekt in die Zieltabelle übertragen.
Vermutlich ein Problem, weil die Zeilen 3 und 4 verbunden sind, kann die letzte Zeile mit Inhalt nicht richtig ermittelt werden.

Gruss Urs
Bitte warten ..
Mitglied: colinardo
LÖSUNG 17.10.2014, aktualisiert um 19:07 Uhr
Hallo Florian,
es ist genau die Ursache die Urs ermittelt hat, die verbundene Zelle(A3:A4) auf dem Tabellenblatt Datenmatrix. Schreibe diese Zeile deines Codes folgendermaßen um, dann klappt's wie gewünscht:
lngLastRow = IIf(.Cells(Rows.Count, 1) = "", .Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row, Rows.Count)
Mit .Offset(1,0) verschiebst du den Zeiger der Zelle wirklich um eine Zelle nach unten, verbundene Zellen werden damit berücksichtigt.

Grüße Uwe
Bitte warten ..
Mitglied: Florian86
17.10.2014 um 19:08 Uhr
Danke für eure Antworten....
Bitte warten ..
Mitglied: Florian86
20.10.2014 um 08:26 Uhr
Hallo,

eine Frage noch...

Wenn ich im ersten Tabellenblatt eine laufende Nummer einfüge und diese auch als Spalte in dem 2 Tabellenblatt,
Könnte man dann sogar über die laufenden Nr. definieren an welcher stelle Excel die Zellen kopieren soll???

Sollte dann wie in der Tabelle so aussehen...

https://drive.google.com/file/d/0BzQM-ZoFrfL8SlltTjNoZnc3XzQ/view?usp=sh ...

Mit freundlichen Grüßen

Florian
Bitte warten ..
Mitglied: colinardo
LÖSUNG 20.10.2014, aktualisiert um 12:07 Uhr
Zitat von Florian86:
Wenn ich im ersten Tabellenblatt eine laufende Nummer einfüge und diese auch als Spalte in dem 2 Tabellenblatt,
Könnte man dann sogar über die laufenden Nr. definieren an welcher stelle Excel die Zellen kopieren soll???
selbst redend
01.
Private Sub CommandButton1_click() 
02.
 Dim wksOrig As Worksheet, wksStore As Worksheet, found As Range 
03.
  
04.
 Set wksOrig = Worksheets("PK frisch") 
05.
 Set wksStore = Worksheets("Datenmatrix") 
06.
  
07.
 With wksStore 
08.
    lfdNummer = wksOrig.Range("D5").Value 
09.
    Set found = .Range("A5", .Cells(Rows.Count, 1)).Find(lfdNummer, LookIn:=xlValues, Lookat:=xlWhole) 
10.
    If Not found Is Nothing Then 
11.
        found.Offset(0, 1).Value = wksOrig.Range("D8") 
12.
        found.Offset(0, 2).Value = wksOrig.Range("F8") 
13.
    End If 
14.
 End With 
15.
  
16.
 Set wksStore = Nothing 
17.
 Set wksOrig = Nothing 
18.
End Sub
Grüße Uwe
Bitte warten ..
Mitglied: Florian86
20.10.2014 um 12:08 Uhr
hat super geklappt Danke dir...

Mit freundlichen Grüßen

Florian86
Bitte warten ..
Mitglied: Florian86
18.11.2014 um 15:28 Uhr
Hallo,

kann man auch sagen wenn in der Zeile etwas geschrieben ist das er dann eine Meldung bringen und abbrechen soll???

Mein Code sieht dazu nun so aus:

Private Sub CommandButton1_Click()

Dim wksOrig As Worksheet, wksStore As Worksheet, found As Range, foundb As Range

Set wksOrig = Worksheets("PK frisch")
Set wksStore = Worksheets("Datenmatrix")

If MsgBox("Bitte Prüfen Sie die lfd. Nummer. Möchten Sie die Daten wirklich übernehmen?", vbYesNo) = vbYes Then
With wksStore

lfdNummer = wksOrig.Range("C6").Value
zeilegefüllt = wksOrig.Range("B5:B5000").Value

Set foundb = .Range("B5", .Cells(Rows.Count, 1)).Find(zeilegefüllt, LookIn:=xlValues, Lookat:=xlWhole)
Set found = .Range("A5", .Cells(Rows.Count, 1)).Find(lfdNummer, LookIn:=xlValues, Lookat:=xlWhole)

If Not found Is Nothing And foundb = "" Then

found.Offset(0, 1) = wksOrig.Range("C8")
found.Offset(0, 2) = wksOrig.Range("K8")

Else
MsgBox "lfd Nummer ist schon vergeben!!!", vbExclamation

End If

End With

Else
End If

Set wksStore = Nothing
Set wksOrig = Nothing
End Sub

Ich wollte halt sagen wenn er die lfdnr. findet UND in Spalte B nix steht ist alles ok.
Wenn in Spalte B etwas drin steht soll er die Meldung bringen das da schon was drin ist.
Bitte warten ..
Mitglied: colinardo
LÖSUNG 18.11.2014, aktualisiert um 18:04 Uhr
Zitat von Florian86:
Ich wollte halt sagen wenn er die lfdnr. findet UND in Spalte B nix steht ist alles ok.
Wenn in Spalte B etwas drin steht soll er die Meldung bringen das da schon was drin ist.
01.
Private Sub CommandButton1_Click() 
02.
    Dim wksOrig As Worksheet, wksStore As Worksheet, found As Range 
03.
     
04.
    Set wksOrig = Worksheets("PK frisch") 
05.
    Set wksStore = Worksheets("Datenmatrix") 
06.
     
07.
    If MsgBox("Bitte Prüfen Sie die lfd. Nummer. Möchten Sie die Daten wirklich übernehmen?", vbYesNo Or vbQuestion) = vbYes Then 
08.
        With wksStore 
09.
            lfdNummer = wksOrig.Range("C6").Value 
10.
            Set found = .Range("A5", .Cells(Rows.Count, 1)).Find(lfdNummer, LookIn:=xlValues, Lookat:=xlWhole) 
11.
         
12.
            If Not found Is Nothing Then 
13.
                If found.Offset(0, 1).Value <> "" Then 
14.
                    MsgBox "lfd Nummer ist schon vergeben!!!", vbExclamation 
15.
                    Exit Sub 
16.
                Else 
17.
                    found.Offset(0, 1) = wksOrig.Range("C8") 
18.
                    found.Offset(0, 2) = wksOrig.Range("K8") 
19.
                End If 
20.
            Else 
21.
                MsgBox "Laufende Nummer wurde nicht gefunden", vbCritical 
22.
            End If 
23.
        End With 
24.
 
25.
    End If 
26.
     
27.
    Set wksStore = Nothing 
28.
    Set wksOrig = Nothing 
29.
End Sub
Grüße Uwe
Bitte warten ..
Mitglied: Florian86
18.11.2014 um 18:05 Uhr
Danke

Mit freundlichen Grüßen

Florian86
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Microsoft Office
gelöst Excel-Makro (7)

Frage von yuki13 zum Thema Microsoft Office ...

Microsoft Office
gelöst Excel Makro : Erst prüfen bei erfolgreicher IF einen Wert überschreiben (4)

Frage von Matze1508 zum Thema Microsoft Office ...

Microsoft Office
gelöst Excel Makro - Button "Springe zu Zeile mit heutigem Datum" (5)

Frage von hannsgmaulwurf zum Thema Microsoft Office ...

Microsoft Office
gelöst Excel 2010 Zellen mit bestimmten Inhalt mit Makro formartierten (5)

Frage von packmann2016 zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...