Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
728to732
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
728to732
728to732
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
VBA variable Suchen Msg-Box
05.02.2006 18:56:33
Uwe
Hallo,
ich komme einfach nicht weiter.
ich habe folgendes Makro
Set r = Range("AC9:AC404")
' Suchen und Eingabe neuer Name
For n = 10 To r.Rows.Count
If r.Cells(n + 1, 29) = 0 Then
Cells(n + 1, 5) = InputBox("neuen Name eingeben")
GoTo Ende
End If
Next n
Die Spalte AC bzw. 29 besteht ab AC9 bis AC404 aus 0 und 1. Das Makro soll mir von oben nach unten suchend die erste Null suchen. In der entsprechenden Zeile soll durch die Input-Box in Spalte E bzw. 5 ein neuer Name ergänzt werden. Mit Eingabe des Namens wird aus der 0 eine 1.
Mein Problem:
Ich werde zwar aufgefordert einen Namen einzugeben, jedoch wird der Name nicht an der richtigen Stelle eingesetzt. Der Name erscheint in Zeile 2, obwohl ich den Bereich von Zeile 9 bis 404 eingeschränkt habe. Möchte ich einen weiteren Namen hinzufügen, wird nicht in der nächsten Zeile dieser hinzugefügt, sondern der erste Name wird überschrieben.
Ich hoffe, mir kann jemand helfen.
Gruß
Uwe

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA variable Suchen Msg-Box
05.02.2006 19:13:59
Ramses
Hallo
etwas umgeschrieben.
Probier mal
Option Explicit

Sub Change_Name()
    Dim tarRng As Range
    Dim startR As Integer, endR As Integer, srcCol As Integer, nameCol As Integer
    Dim tmpName As String, Qe As Integer
    startR = 9
    endR = 404
    srcCol = 29
    nameCol = 5
    Set tarRng = Range(Cells(startR, srcCol), Cells(endR, srcCol))
    'Nichts mehr ändern ab hier
    ' Suchen und Eingabe neuer Name
    For n = startR To endR
        If Cells(n, srcCol) = 0 Then
            tmpName = InputBox("neuen Name eingeben")
            If tmpName = "" Then
                Qe = MsgBox("Wollen sie wirklich abbrechen ? ", vbQuestion + vbOKCancel, "Abbruch ? ")
                If Qe = vbOK Then Exit Sub
            End If
            Cells(n, nameCol) = tmpName
            Cells(n, srcCol) = 1
        End If
    Next n
End Sub




Gruss Rainer
Anzeige
AW: VBA variable Suchen Msg-Box
05.02.2006 19:41:30
Uwe
Hallo Rainer,
vielen Dank für die Unterstützung. Ich habe noch Fragen zu deinem Makro. Ich habe dein Makro übernommen. Bei der Ausführung fragt er mich solange nach Namen, bis wahrscheinlich "alle" Nullen weg sind. Aus diesem Grund habe ich den "GoTo Ende:"-Befehl hinzugefügt.
Bei deiner Variante wird der Name immer wieder überschrieben. Nach meiner Ergänzung fragt er nach erneuter Betätigung der Schaltfläche gar nicht mehr nach einem neuen Namen, obwohl in Spalte 29 noch Nullen stehen.
Hast du einen Rat?
Gruß
Uwe
AW: VBA variable Suchen Msg-Box
05.02.2006 19:58:10
Ramses
Hallo
"...Bei deiner Variante wird der Name immer wieder überschrieben. ..."
Natürlich, du willst doch einen Namen eingeben.
Was willst du denn genau erreichen ?
"..Nach meiner Ergänzung..."
Ich kenne deinen Code nicht, daher kann ich nichts dazu sagen.
Option Explicit

Sub Change_Name()
    Dim tarRng As Range, n As Integer
    Dim startR As Integer, endR As Integer, srcCol As Integer, nameCol As Integer
    Dim tmpName As String, Qe As Integer
    startR = 9
    endR = 404
    srcCol = 29
    nameCol = 5
    Set tarRng = Range(Cells(startR, srcCol), Cells(endR, srcCol))
    'Nichts mehr ändern ab hier
    ' Suchen und Eingabe neuer Name
    For n = startR To endR
        If Cells(n, srcCol) = 0 Then
            Debug.Print n
            tmpName = InputBox("neuen Name eingeben", "Namen ändern", Cells(n, nameCol).Text)
            If tmpName = "" Then
                Qe = MsgBox("Wollen sie wirklich abbrechen ? ", vbQuestion + vbOKCancel, "Abbruch ? ")
                If Qe = vbOK Then Exit Sub
            End If
            Cells(n, nameCol) = tmpName
            Cells(n, srcCol) = 1
            Exit Sub
        End If
    Next n
End Sub

In diesem Beispiel wird der Name aus der Spalte 5 übernommen als Standardtext,... wenn vorhanden.
Gruss Rainer
Anzeige
AW: VBA variable Suchen Msg-Box
05.02.2006 20:11:15
Uwe
Hallo,
ich habe eine vorformatierte Liste, die am Anfang leer ist. Die Leeren Zeilen sind ausgeblendet. Jede leere Zeile hat eine Kennzahl Null, die wiederum für das Ausblenden dient. Max. Anzahl der Namen z.B. 20.
Nun soll der 1. Name hinzugefügt werden. Daher soll in Spalte 29 die erste Null gesucht werden und dieser der Namen über die InputBox zugeordent werden. Aus der Null wird nun eine 1, sodass diese Zeile nicht mehr ausgeblendet wird. Das gleiche mit dem 2., 3. ... Namen.
Es kann vorkommen, dass Namen irgendwann wieder gelöscht werden müssen. Sortieren ist daher nur bedingt möglich, da die Namen nicht unmittelbar untereinader bzw. andere Formeln zwischen den Namen stehen. Jeder Name steht für einen fest definierten Bereich, der vorformatiert ist. Das Einfügen des Namens aktiviert (Einblenden) bzw. deaktiviert(Ausblenden) den jeweiligen Bereich.
Ich hoffe, ich konnte den Sachverhalt etwas deutlicher schildern.
Gruß
Uwe
Anzeige
AW: VBA variable Suchen Msg-Box
05.02.2006 20:18:15
Ramses
Hallo
Dann hast du ja jetzt was du brauchst ;-)
Genau das macht das Makro.
Für das Ein- und Ausblenden bist du zuständig ;-)
Gruss Rainer
AW: VBA variable Suchen Msg-Box
05.02.2006 22:40:55
Uwe
Hallo Rainer,
ich habe meinen Fehler gefunden. In den Formeln, die für das Ausblenden und Einblenden verantwortlich sind, stand immer der gleiche Wert drin.
Dein Makro funktioniert einwandfrei. Vielen Dank nochmal.
Gruß
Uwe

113 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige