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, 1205 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


MfG

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 ...

MfG

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...

MfG

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

MfG

Florian86
Bitte warten ..
Neuester Wissensbeitrag
Router & Routing

192.168er Adresse im öffentlichen Netz

(2)

Erfahrungsbericht von visco-c zum Thema Router & Routing ...

Ähnliche Inhalte
VB for Applications
Excel Makro zum Suchen von Spalten und exportieren in CSV (2)

Frage von Raptox zum Thema VB for Applications ...

Microsoft Office
gelöst Excel Makro zum Sortieren von Spalten an größeres Dokument Anpassen (2)

Frage von Rolfor zum Thema Microsoft Office ...

Microsoft Office
gelöst Excel-Makro (7)

Frage von yuki13 zum Thema Microsoft Office ...

Microsoft Office
gelöst Mal wieder ein Excel-Problem (4)

Frage von Yannosch zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Zusammenarbeit
Als Administrator im Großraumbüro (29)

Frage von Dopamin85 zum Thema Zusammenarbeit ...

Exchange Server
Test-ActiveSyncConnectivity Error nach neuem Zertifikat (22)

Frage von Driphex zum Thema Exchange Server ...

Hyper-V
HYPER V und USB (16)

Frage von Hendrik2586 zum Thema Hyper-V ...

SAN, NAS, DAS
Backupserver für KMU (14)

Frage von Leo-le zum Thema SAN, NAS, DAS ...