[vba] range angabe zerlegen
#21
Hallo,

ich habe Deine Datei jetzt mal flüchtig gesichtet und dadurch ergibt sich schon mal die
erste Frage. Du arbeitest doch mit VBA. Warum nutzt Du das nicht auch aus?

Du hast Beispielsweise eine ganze Spalte mit fortlaufendem Datum bis in's nächste Jahr
hinein sozusagen "auf Vorrat" gefüllt. Das ist nicht nur unnötige Arbeit, es bläst auch die
Datei selbst nur unnötig auf.
VBA ist auch in der Lage, ein Datum fortlaufend in eine Zelle zu schreiben, und das sogar
erst dann, wenn es gebraucht wird und das sogar vollautomatisch.
Das nur mal so zur Anregung für weitere Gedankengänge.

Leider werde ich heute keine Zeit mehr finden, die Datei genauer anzuschauen.
Gerade habe ich Besuch bekommen. Ich werde erst morgen dazu kommen, denn, es gibt 
eben auch noch ein Leben neben Excel  :05:

Im Übrigen darfst Du Dir gerne überlegen, ob Du uns nicht einen Namen bekanntgeben
möchtest, mit dem man Dich ansprechen kann. In Foren ist es übrigens auch guter Ton,
seine Beiträge mit eine Gruß zu beginnen und zu beenden. Schon das ist eine sichtbare
Abgrenzung zu irgendwelchen Chaträumen.

Später: Ups, man sollte eben nicht "noch eben auf die Schnelle" posten. Ich war gerade
in einer anderen Datei im Code. Also, bis morgen. Was ich aber über Deine Datei geschrieben
habe, stimmt aber schon.
Top
#22
Hallo,

(28.11.2019, 17:26)r4mun schrieb: Schon so einiges probiert aber es klappt einfach nicht so richtig.
Evtl kann sich das jemand anschauen. Confused

was klappt einfach nicht so richtig? Ich habe mal die Variable a als String deklariert und das Makro gestartet. Der Wert aus der Zelle L4 wird in die passende Spalte und Zeile eingetragen. Gesucht wird das Tagesdatum und der heutige Tag, der 28.11.19 befindet sich bei dir in der Zeile 334. Und in L8 steht bei dir C. Ergo wird es in C334 eingetragen. Was passt nicht?
Gruß Stefan
Win 10 / Office 2016
Top
#23
Hallo

ich bin nicht jeden Tag im Forum, war erstaunt über die lange der Rückfragen, und habe ein wenig genervt feststellen müssen das in der Beispieldatei kein Code vorhanden war. Beim kopieren aus dem Thread, wo ich alle AW extra noch mal gelesen habe, stach mir der Fehler sofort ins Auge. Amüsant das der wichtigste Fehler bisher von allen übersehen wurde!! 

Lieber Frager   bitte Sorgfalt bei VBA!!  Das sage ich dir ganz höflich, möchte dich hiermit ermutigen "am Ball zu bleiben"  Also!
Ich habe mir angewöhnt die einstelligen Buchstaben wie a, i, usw. NUR für Zaehler zu benutzen. Spalten sind bitte Text, sie sollten als "String" und nicht als Range deklariert werden, denn Range unfasst einen Bereich!! Deshalb nahm ich in dem korrigierten Code die Variable "Spa", dann weiss man selbst was man da programmiert!

Wie bitte willst du jemals in deinem Sıchlauf ein Ergebnis bekommen, wenn du die Variable "datum" mit einem Datum laedst, aber in der Set Find Methode als Suchtext "Date" angibst??? Muss ich das noch weiter erklaeren???

Leider fehlte der 2. Code Teil mit Call Dateneinfügen2, wo ich nicht prüfen konnte was der macht.  Für Heute reicht es auch.  
Würde mich freuen wenn dein Suchlauf jetzt klappt. Auf die zwei MsgBoxen kannst du dann verzichten.

mfg Gast 123

Code:
Sub Dateneinfügen1() 'Linie1 Daten einfügen
Dim zelleS As Range
Dim bereichS As Range
Dim datum As Date
Dim i As Long
Dim Spa As String

datum = Sheets("Daten").Range("N4")
Set bereichS = Sheets("Daten").Range("B:B")
Set zelleS = bereichS.Find(what:=datum, LookAt:=xlWhole, LookIn:=xlValues)
If zelleS Is Nothing Then
 MsgBox "Datum nicht gefunden": Exit Sub
Else
 MsgBox "Datum befindt sich in Zelle" & zelleS.Address
End If
i = zelleS.Row
Spa = Range("L8").Value
MsgBox "erfolg"
Sheets("Daten").Range(Spa & i).Value = Range("L4").Value
End Sub
Top
#24
Hallo,

Mein Besuch konnte leider nicht sehr lange bleiben. Drum wollte ich jetzt weitermachen.
Ganz ehrlich, ich fühle mich jetzt langsam ... gelinde gesagt ... schwer vera***.

Du schreibst die ganze Zeit von Makros und daß sie nicht funktionieren und so einen wertlosen Kram.
Als Datei und zur Hilfefindung stellst Du hier eine fast leere *.xlsx-Datei, bestehend aus nur einem
einzigen, fast leeren Tabellenblatt mit dem Namen "Tabellenblatt 7" vor, die auch noch Verknüpfungen
zu anderen Blättern und / oder Dateien enthält und behauptest, das sei der letzte Stand der Dinge.

Zunächst mal, wo hast Du die Makros in einer *.xlsx-Datei versteckt? Wenn Du nachhaltig nachweisen
kannst, wie Du in einer *.xlsx-Datei an's Laufen kriegst, nach Neustart der Datei selbstversändlich, dann
schlage ich Dich höchstselbst für den Nobelpreis vor. In allen Foren werden dann die Helfer jubeln, und
nicht nur die, da sei versichert.

Man kann in einer Exceldatei mit der Endung *.xlsx nicht mit Makros arbeiten, weil diese Datei kein VBA
kennt. Makros werden beim Speichern einer *.xlsx-Datei gnadenlos und ohne jede Vorwarnung gelöscht.
Die korrekte Endung für Exceldateien mit Makros lautet *.xlsm oder *.xlsb.

So, und nachdem ich das nun losgeworden bin zum Abschluß noch:
Wenn Du weiter willst, daß ich Dir helfe, dann solltest Du Gas geben.
Am 03.12. liege ich nämlich ich schon morgens in Harburg auf dem OP-Tisch.
Da habe ich dann mit anderen Sachen als mit Excel zu kämpfen.

Und wenn ich Dir weiterhin helfen soll, erwarte ich selbstverständlich eine vollständige
Datei mit allem Drum und Dran.
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste