vba
-
Gesamte Inhalte
19 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Beiträge von vba
-
-
Wenn ich die Exceldatei mit makros speicher will muss ichs als *.xlms und die kann man hier nich hochladen.
Das war mir nicht klar.
OK die Datei ist jetzt aber angekommen und wenn das Makro an der richtigen Stelle eingefügt wird, funktioniert es auch einwandfrei.
Für Tabelle1 muss das Makro im Klassenmodul von Tabelle1 abgespeichert sein und nicht in Modul1.
Ich hab hier keine Fehlermeldungen.
Gruß
Alfons
-
ich will mir jetzt nicht extra Open Office installieren.
Lade die Datei als Exceldatei rauf.
Gruß
Alfons
-
und wo sind die Makros?
Gruß
Alfons
-
Hallo,
ich kann den Fehler nicht nachvollziehen.
Hast Du am Beispiel was verändert?
Datei mal raufladen?
Gruß
Alfons
-
Hallo,
auch bei mehreren Spalten reicht ein Makro.
der Tabellenaufbau ist mir aber nicht ganz klar.
Wenn in Spalte A die Namen stehen und in Zeile 1 die Kategorien
versuch's mal damit:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'aussteigen wenn nicht im Bereich B2:H10 If Application.Intersect(Target, Range("B2:H10")) Is Nothing Then Exit Sub 'aussteigen wenn mehr als eine Zelle markiert If Target.Columns.Count > 1 Or Target.Rows.Count > 1 Then Exit Sub 'hochzählen wenn Zahl If IsNumeric(Target.Value) Then Target.Value = Target.Value + 1 End Sub
Gruß
Alfons
-
Hallo,
versuch es mal mit =Wert(A1)
Gruß
Alfons
-
da steht aber nichts von Baujahr: ImageShack - Hosting :: screenhunter06jun251512bh1.jpg
Sub Modulaufruf_Zeilen_kopieren_alle_Tabellen() 'kopiert immer zwei Zeilen Dim letzte_Zeile As Long, Zeile As Long, Treffer As Long Dim wkb_Neu As Workbook Dim wks As Worksheet Dim Antwort As Integer Antwort = MsgBox("Ab jetzt werde ich meine Fragen genauer formulieren", vbYesNo, "") If Antwort = 7 Then Exit Sub End If Set wkb_Neu = Workbooks.Add Treffer = 1 For Each wks In ThisWorkbook.Worksheets wks.Activate 'letzte Zeile mit Inhalt Spalte A letzte_Zeile = wks.Cells(Rows.Count, 1).End(xlUp).Row For Zeile = 1 To letzte_Zeile If wks.Cells(Zeile, 1).Value = "Typ" Then 'wks.Rows(Zeile).Copy wkb_Neu.Worksheets("Tabelle1").Cells(Treffer, 1) wks.Range(Cells(Zeile, 1), Cells(Zeile + 1, Columns.Count)).Copy _ wkb_Neu.Worksheets("Tabelle1").Cells(Treffer, 1) Treffer = Treffer + 2 End If Next Zeile Next wks wkb_Neu.Activate Set wkb_Neu = Nothing MsgBox Treffer - 1 & " Zeilen kopiert", , "" End Sub
Gruß
Alfons
-------------------------
meine Excelseiten: Excel-Dateien und VBA für Excel
-------------------------
-
> Kann ich sowas, als .vbs skript machen?
bestimmt.
site:http://herber.de vbs - Google-Suche
Gruß
Alfons
-
ist nicht schön aber fluppt für alle Tabellen:
Sub Modulaufruf_Zeilen_kopieren_alle_Tabellen() 'kopiert alle Zeilen in neue Mappe wenn 'in Spalte A "Typ" steht Dim letzte_Zeile As Long, Zeile As Long, Treffer As Long Dim wkb_Neu As Workbook Dim wks As Worksheet Set wkb_Neu = Workbooks.Add For Each wks In ThisWorkbook.Worksheets wks.Activate 'letzte Zeile mit Inhalt Spalte A letzte_Zeile = wks.Cells(Rows.Count, 1).End(xlUp).Row For Zeile = 1 To letzte_Zeile If wks.Cells(Zeile, 1).Value = "Typ" Then Treffer = Treffer + 1 wks.Rows(Zeile).Copy wkb_Neu.Worksheets("Tabelle1").Cells(Treffer, 1) End If Next Zeile Next wks wkb_Neu.Activate Set wkb_Neu = Nothing MsgBox Treffer & " Zeilen kopiert", , "" End Sub
Gruß
Alfons
-------------------------
meine Excelseiten: Excel-Dateien und VBA für Excel
-------------------------
-
und wo genau liegt das Problem? Fehlermeldung? Excelversion?
den folgenden Code kannst Du auch in ein normales Modul packen.
Die zu durchsuchende Tabelle muss dann aber die aktive sein!
Sub Modulaufruf_Zeilen_kopieren_2() 'kopiert alle Zeilen in neue Mappe wenn 'in Spalte A "Typ" steht Dim letzte_Zeile As Long, Zeile As Long, Treffer As Long Dim wkb_Neu As Workbook Dim wks As Worksheet Set wks = ThisWorkbook.ActiveSheet 'letzte Zeile mit Inhalt Spalte A letzte_Zeile = wks.Cells(Rows.Count, 1).End(xlUp).Row Set wkb_Neu = Workbooks.Add For Zeile = 1 To letzte_Zeile If wks.Cells(Zeile, 1) = "Typ" Then Treffer = Treffer + 1 wks.Rows(Zeile).Copy wkb_Neu.Worksheets("Tabelle1").Cells(Treffer, 1) End If Next Zeile Set wks = Nothing Set wkb_Neu = Nothing MsgBox Treffer & " Zeilen kopiert", , "" End Sub
Gruß
Alfons
-------------------------
meine Excelseiten: Excel-Dateien und VBA für Excel
-------------------------
-
selber Hey
Du musst das Makro im Klassenmodul der zu durchsuchenden Tabelle speichern/starten und nicht in einem anderen Modul.
Gruß
Alfons
-------------------------
meine Excelseiten: Excel-Dateien und VBA für Excel
-------------------------
-
Hallo,
versuch das mal:
Sub Zeilen_kopieren() 'kopiert alle Zeilen in neue Mappe wenn 'in Spalte A "Typ" steht Dim letzte_Zeile As Long, Zeile As Long, Treffer As Long Dim wkb_Neu As Workbook Set wkb_Neu = Workbooks.Add 'letzte Zeile Spalte A letzte_Zeile = Cells(Rows.Count, 1).End(xlUp).Row For Zeile = 1 To letzte_Zeile If Cells(Zeile, 1) = "Typ" Then Treffer = Treffer + 1 Rows(Zeile).Copy wkb_Neu.Worksheets("Tabelle1").Cells(Treffer, 1) End If Next Zeile Set wkb_Neu = Nothing MsgBox Treffer & " Zeilen kopiert", , "" End Sub
Gruß
Alfons
-------------------------
meine Excelseiten: Excel-Dateien und VBA für Excel
-------------------------
-
Hallo,
aktive Spalte ermitteln:
MsgBox ActiveCell.Column
Gruß
Alfons
-------------------------
meine Excelseiten: Excel-Dateien und VBA für Excel
-------------------------
-
da fehlte noch was:
Option Explicit
Dim Spalte As Long, Zeile As Long
Private Sub txt_Eingabe_Change()
If txt_Eingabe.Value = "" Then
cmb_OK.Enabled = False
Else
cmb_OK.Enabled = True
End If
End Sub
Alfons
-------------------------
meine Excelseiten: Excel-Dateien und VBA für Excel
-------------------------
-
Hallo,
dein Problem habe ich nicht so ganz verstanden und meine Antwort bezieht sich
jetzt nur auf eine Tabelle:
Zelle A1 ist leer.
Ab Zelle B1 bis n1 steht immer ein Datum.
In Spalte A ab Zelle A2 bis A? steht immer die Uhrzeit.
Dann bau dir eine UserForm mit folgenden Steuerelementen:
ComboBox cmb_Datum
ComboBox cmb_Uhrzeit
Textfeld txt_Eingabe
CommandButton cmb_OK
und hier der Code dazu:
Private Sub UserForm_Initialize()
'Datum aus Zeile 1 auslesen bis letzte Spalte mit Inhalt
'und in cmb_Datum eintragen:
For Spalte = 2 To Cells(1, Columns.Count).End(xlToLeft).Column
UserForm1.cmb_Datum.AddItem (Cells(1, Spalte))
Next Spalte
'Uhrzeit aus Spalte A auslesen bis letzte Zeile mit Inhalt
'und in cmb_Uhrzeit eintragen:
For Zeile = 2 To Cells(Rows.Count, 1).End(xlUp).Row
UserForm1.cmb_Uhrzeit.AddItem Format((Cells(Zeile, 1)), "hh:mm")
Next Zeile
UserForm1.cmb_Datum.ListIndex = 0
UserForm1.cmb_Uhrzeit.ListIndex = 0
cmb_OK.Enabled = False
End Sub
Private Sub cmb_Datum_Change()
Spalte = cmb_Datum.ListIndex + 2
Call Zelle_zeigen
End Sub
Private Sub cmb_Uhrzeit_Change()
Zeile = cmb_Uhrzeit.ListIndex + 2
Call Zelle_zeigen
End Sub
Sub Zelle_zeigen()
Cells(Zeile, Spalte).Select
End Sub
Private Sub cmb_OK_Click()
Cells(cmb_Uhrzeit.ListIndex + 2, cmb_Datum.ListIndex + 2) = txt_Eingabe
End Sub
Hilft dir das?
Gruß
Alfons
------------------------
meine Excelseiten: Excel-Dateien und VBA für Excel
-------------------------
-
>
... die Excel Datei in eine XML Datei umzuwandeln, irgendwo abzulegen und letztendlich natürlich auch in die Datenbank zu importieren.Hallo,
um was für eine DB geht es eigentlich?
Ansonsten versuchs mal damit:
Sub Dateiexport()
'falls die Zieldatei noch nicht vorhanden ist,
'wird sie erstellt
Dim Datei As String, Text As String
Dim Zeile As Long
Dim zeigen
On Error GoTo Hell
'Zieldatei festlegen
Datei = ThisWorkbook.Path & "\test.xml"
Open Datei For Output As #1 'Zieldatei öffnen
'reinschreiben
Print #1, "<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?> "
Print #1, "<daten>"
Print #1, "<titel>Bankleitzahlen</titel>"
'mit Schleife die ersten 20 Zeilen der Tabelle reinschreiben
'Spalte A = Blz, Spalte B = Institut
For Zeile = 1 To 20
Print #1, "<datensatz>"
Print #1, "<blz>" & Cells(Zeile, 1) & "</blz>"
Print #1, "<institut>" & Cells(Zeile, 2) & "</institut>"
Print #1, "</datensatz>"
Next Zeile
Print #1, "</daten>"
Close #1 'Zieldatei schließen
zeigen = Shell(Environ("windir") & "\notepad.exe " & Datei, 1)
Exit Sub
Hell:
Close #1
MsgBox "FehlerNr.: " & Err.Number & vbNewLine & vbNewLine _
& "Beschreibung: " & Err.Description _
, vbCritical, "Fehler"
End Sub
-
-
Hallo,
für Excel:
Michael Kofler VBA-Programmierung mit Excel 97 / Verlag: Addison-Wesley
sein Buch im gleichen Verlag zu Exycel 2000 soll nicht so gut sein...
und als download:
Gruß
Alfons
Excel Makro
in Anwendungssoftware
Geschrieben
Hallo,
weil man nicht sehen kann was da reinkopiert wird,
lässt sich die Frage schlecht beantworten.
Das Beispiel unten formatiert nach Rückfrage die ganze Spalte mit dem Sonderformat "Postleitzahl".
Vielleicht hilft es ja:
Gruß
Alfons