Excel-Vba Probleme?

3 Antworten

Und warum brauchst du dafür VBA? Kannst du das nicht mit =ZÄHLENWENN machen?

Alternativ kannst du auch einfach eine Pivottabelle erstellen.

Ich denke das es mit VBA einfacher ist. Oder etwa nicht?

0
@Gleibo

Wenn du eh schon VBA eingebunden hast, denke ich auch.
Extra dafür n Makro... Hmm... Kann man, muss man nicht.

0

Hallo,

einen Code hast du ja schon. Einen Formelvorschlag auch.

Lösbar wäre es aber auch, ohne Formel und VBA, mit einem Pivot.

LG, Chris

Den Vorschlag hat er auch schon bekommen :-P

0
@Rambaldi1988

jepp... wer lesen kann ist halt klar im Vorteil. hab bei dem Beitrag an der Stelle mit Zählenwenn irgendwie aufgehört :-)

0
@Funfroc

Ging mir anfangs auch so :P
Scheint eine nicht sichtbare Mauer eingeschrieben zu sein.

0

Ich setz mich schnell dran, ist gleich gemacht :P
Melde mich

Das sollte es sein, was du suchst:
Hab es etwas kommentiert für dich.

P.S.: Spalte A Sind die Werte voreingetragen
B werden die Werte gelistet
C wie oft diese in Spalte A vorkommen.

P.P.S.: Rückmeldung erwünscht

Option Explicit

Sub sortieren()
Dim z As Integer 'Zeilenzähler
Dim Wert As String 'Zelleninhalt
Dim letztezeileB As Integer 'Letzte Zielzeile
z = 1

'Überschriften schreiben
Cells(1, 2).Value = "Wert"
Cells(1, 3).Value = "Anzahl"

'Schleife bis leere Zeile kommt
Do Until Cells(z, 1).Value = ""
Wert = Cells(z, 1).Value
If WorksheetFunction.CountIf(Range("B:B"), Wert) < 1 Then 'Prüfen ob schon eingetragen
letztezeileB = ActiveSheet.Cells(1048576, 2).End(xlUp).Row + 1 'Letzte Zeile festhalten
Cells(letztezeileB, 2).Value = Wert 'Wert eintragen
Cells(letztezeileB, 3).Value = WorksheetFunction.CountIf(Range("A:A"), Wert) 'Anzahl eintragen
End If
z = z + 1 'Nächste Zeile
Loop

End Sub
1
@Rambaldi1988

Noch etwas optimiert, du kannst die die Spalten nun aussuchen.

Option Explicit

Sub sortieren()
Dim z As Integer 'Zeilenzähler
Dim Wert As String 'Zelleninhalt
Dim letztezeileB As Integer 'Letzte Zielzeile
Dim suche As Integer 'Suchspalte
Dim wertespalte As Integer 'Wo werden Werte eingetragen
z = 1

'#######################################
'## Hier gewünschte Spalten eintrgen ###
'#######################################
suche = 1 'In welcher Spalte soll gesucht werden? *1=A 2=B 3=C ...
wertespalte = 2 'In welche Spalte sollen die Werte eingetragen werden? *1=A 2=B 3=C ...

'##################################
'### Ab hier nichts mehr ändern ###
'##################################

'Überschriften schreiben
Cells(1, wertespalte).Value = "Wert"
Cells(1, wertespalte + 1).Value = "Anzahl"

'Schleife bis leere Zeile kommt
Do Until Cells(z, suche).Value = ""
Wert = Cells(z, suche).Value
If WorksheetFunction.CountIf(Cells(wertespalte, wertespalte), Wert) < 1 Then 'Prüfen ob schon eingetragen
letztezeileB = ActiveSheet.Cells(1048576, wertespalte).End(xlUp).Row + 1 'Letzte Zeile festhalten
Cells(letztezeileB, wertespalte).Value = Wert 'Wert eintragen
Cells(letztezeileB, wertespalte + 1).Value = WorksheetFunction.CountIf(Cells(suche, suche), Wert) 'Anzahl eintragen
End If
z = z + 1 'Nächste Zeile
Loop

End Sub
1
@Rambaldi1988

Einmal vielen vielen Dank für die sehr rasche Hilfeleistung. :)

Ich habe deine Codezeilen nun übernommen. Dann habe ich die zwei Spalten für (suchen und Wertespalte) eingetragen.

Nun sieht es so aus. siehe unten.

Tabelle              Werte             Anzahl

1589                1589                   0

1577                 1577                  1

1589                 1589                  0

2017                  2017                 0

Hab ich da was falsch gemacht?

lg lukas

1
@Gleibo

Das war mein Fehler...
Sorry.

So gehts: (Gerade auch getestet)
Spalten bitte wieder an deine Verhältnisse anpassen

Option Explicit

Sub sortieren()
Dim z As Integer 'Zeilenzähler
Dim Wert As String 'Zelleninhalt
Dim letztezeileB As Integer 'Letzte Zielzeile
Dim suche As Integer 'Suchspalte
Dim wertespalte As Integer 'Wo werden Werte eingetragen
z = 1

'#######################################
'## Hier gewünschte Spalten eintrgen ###
'#######################################
suche = 1 'In welcher Spalte soll gesucht werden? *1=A 2=B 3=C ...
wertespalte = 2 'In welche Spalte sollen die Werte eingetragen werden? *1=A 2=B 3=C ...

'##################################
'### Ab hier nichts mehr ändern ###
'##################################

'Überschriften schreiben
Cells(1, wertespalte).Value = "Wert"
Cells(1, wertespalte + 1).Value = "Anzahl"

'Schleife bis leere Zeile kommt
Do Until Cells(z, suche).Value = ""
Wert = Cells(z, suche).Value
If WorksheetFunction.CountIf(Columns(wertespalte), Wert) < 1 Then 'Prüfen ob schon eingetragen
letztezeileB = ActiveSheet.Cells(1048576, wertespalte).End(xlUp).Row + 1 'Letzte Zeile festhalten
Cells(letztezeileB, wertespalte).Value = Wert 'Wert eintragen
Cells(letztezeileB, wertespalte + 1).Value = WorksheetFunction.CountIf(Columns(suche), Wert) 'Anzahl eintragen
End If
z = z + 1 'Nächste Zeile
Loop

End Sub
1
@Rambaldi1988

Du brauchst dich nicht zu entschuldigen, sonder ich muss mich bedanken. Es funktioniert :D

Vielen Vielen Dank, du hast mir den Tag gerettet :)

1
@Gleibo

Immer wieder gern :P

In dem Fall... "Nenn mich Batman!" *hahaha*

1

Excel - Wenn Wert in Spalte = x, dann Nachbarzelle kopieren

Hallo,

lässt sich folgende Aufgabe über eine Formel lösen?

Wenn ja, wie lautet die Formel?

Ich habe in Spalte A Texte und in Spalte B dazugehörige Zahlenwerte.

In Spalte C stehen stehen die gleichen Texte wie in Spalte A, nur in einer anderen Reihenfolge.

Wenn nun z.B. in Spalte A der Text in der Zelle A3 = "xy" steht, soll der dazugehörige Zahlenwert in Zelle B3 = "365" zu dem passenden Tex in Spalte C gezählt werden.

Also wenn "xy" in Zelle C10 steht, muss der Wert aus B3 = "365" in D10 eingetragen werden.

Ich hoffe es ist verständlich ausgedrückt.

Danke & Gruß Peter

...zur Frage

VBA Excel - Spalten kopieren und Einfügen?

Ich möchte mittels VBA-Button gerne eine Anzahl von Spalten kopieren um meine Kalkulation somit zu erweitern.

Spalte E:H bilden die "Master-Spalten-Set". Diese Spalten sollen immer vor der Spalte in der die Zelle "Total Qty" vorkommt kopiert werden.

Mein aktueller Code lautet:

Sub Makro1()
    Columns("E:H").Select
    Selection.Copy
    Columns("Q:Q").Select
    Selection.Insert Shift:=xlToRight
End Sub

Wie muss ich diese Code erweitern um variable vor der Spalte mit der Zelle "Total Qty" das "Master-Spalten-Set" einzufügen?

Danke

...zur Frage

Werte untereinander in Excel erfassen - VBA

Frage an die Excel Profis und VBA Experten. Die Aufgabenstellung baut aufeinander auf.

  1. Aufgabenstellung: Zelle A1 soll als Eingabefeld in Excel dienen. Alle Werte, die in A1 eingegeben werden, sollen einfach untereinander ausgegeben werden, also in a2, a3, a4 usw. Die Cursormarkierung (damit meine ich die schwarze Umrahmung der aktiven Zelle) bleibt aber in A1.

  2. Aufgabenstellung: Aufbauend auf Aufgabenstellung 1 soll nun nachdem in A1 ein Wert eingegeben wurde, der Wert wie gehabt in A2 erscheinen. Die schwarze Umrahmung soll aber jedoch zunächst in B2 erscheinen um einen weiteren Wert einzugeben. Erst nach Eingabe eines Wertes in B2 soll die Umrahmung wieder in A1 springen, damit ein nächster Wert eingegeben werden kann, der dann in Zelle A3 erscheint. Dann springt die Cursormarkierung in B3, um einen Wert einzugeben. Danach wieder in A1 usw.

  3. Aufgabenstellung: Aubauend auf Aufgabenstellung 2 sollen die Werte, die in den Zellen der Spalte B eingegeben werden, mit den Werten der Spalte A im Reiter "Tabelle2" verglichen werden. Sofern der eingegebene Wert in der Spalte B mit denen der Spalte A (Reiter Tabelle2) übereinstimmt, soll Excel ein Fenster öffnen, in dem "Wert gefunden" steht.

Ist das in Excel 2003 per VBA für alle 3 Aufgabenstellungen möglich?

...zur Frage

Was möchtest Du wissen?