Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  Excel VBA

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Excel VBA (721 / mal gelesen)
uwehinku
Mitglied
Rentner

Sehen Sie sich das Profil von uwehinku an!   Senden Sie eine Private Message an uwehinku  Schreiben Sie einen Gästebucheintrag für uwehinku

Beiträge: 4
Registriert: 13.03.2016

erstellt am: 13. Mrz. 2016 14:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo, habe folgendes Problem:
ich Tabelle 1 habe ich in Spalte b eine 4 stehen. So wie die 4 mit return bestätigt ist, möchte ich den entsprechenden Text aus Spalte C, F + E in eine Tabelle 2 kopieren.
Kann mir jemand helfen?
Ich bin Anfänger!
Gruß
uwehinku

------------------
Uwe

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



Sehen Sie sich das Profil von CAD-Huebner an!   Senden Sie eine Private Message an CAD-Huebner  Schreiben Sie einen Gästebucheintrag für CAD-Huebner

Beiträge: 9732
Registriert: 01.12.2003

erstellt am: 13. Mrz. 2016 15:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für uwehinku 10 Unities + Antwort hilfreich

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



Sehen Sie sich das Profil von KlaK an!   Senden Sie eine Private Message an KlaK  Schreiben Sie einen Gästebucheintrag für KlaK

Beiträge: 2624
Registriert: 02.05.2006

Office 2010; Office365
Visual Basic

erstellt am: 13. Mrz. 2016 15:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für uwehinku 10 Unities + Antwort hilfreich

Hallo Uwe,
Willkommen im Forum

Hoffe Deine Anfrage richtig interpretiert zu haben, das wäre ein möglicher Code.
Kopiere ihn in den Code der Tabelle1 (zu öffnen entweder über Makros - Visual Basic Editor oder rechte Maus auf Tabellenblatt und Code anzeigen)

Code:

Private Sub Worksheet_Change(ByVal Von As Range)
  ' Überprüfe ob auslösendes Element Spalte B mit Inhalt 4 war
  ' und übergebe die auslösende Zeile zum Kopieren
  If Von.Count = 1 Then ' nur durchführen wenn eine Zelle geändert wurde
    If Von.Column = 2 And Von.Value = 4 Then Call B4_Werte_Kopieren(Von.Row)
  End If
End Sub

Sub B4_Werte_Kopieren(Zeile As Long)
  ' Wenn in Spalte B der Wert 4 eingegeben wurde
  ' kopiere die Werte der Spalten C, E und F nach Tabelle2
  Dim Spalte As Long
  Spalte = 3 ' C
  Cells(Zeile, Spalte).Copy Destination:=Worksheets("Tabelle2").Cells(Zeile, Spalte)
  Spalte = 5 ' E
  Cells(Zeile, Spalte).Copy Destination:=Worksheets("Tabelle2").Cells(Zeile, Spalte)
  Spalte = 6 ' F
  Cells(Zeile, Spalte).Copy Destination:=Worksheets("Tabelle2").Cells(Zeile, Spalte)

End Sub


Grüße
Klaus  

[Edit] Code auf untersuchen einer einzelnen Zelle geändert da es ansonsten zu Fehlern beim Kopieren mehrerer Zellen kommen kann

[Diese Nachricht wurde von KlaK am 13. Mrz. 2016 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

uwehinku
Mitglied
Rentner

Sehen Sie sich das Profil von uwehinku an!   Senden Sie eine Private Message an uwehinku  Schreiben Sie einen Gästebucheintrag für uwehinku

Beiträge: 4
Registriert: 13.03.2016

erstellt am: 13. Mrz. 2016 20:57    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Klaus, danke erst einmal.
Diese Applikation funktioniert nicht.
Nochmals.
Tabelle 1 hat in Spalte B in unterschiedlichen Zeilen die Zahlen 1,2,3 und 4.
Bei Änderung oder bei einer bereits bestehenden 4 sollen verschiedene Spalten z.B C, E,+ F aus Tabelle 1 in eine Tabelle 2 kopiert werden.
Würde nun die 3 zu einer 4 werden, müssen die Texte in die nächste leere Zeile in Tabelle 2 kopiert werden
Gruß
Uwe

------------------
Uwe

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



Sehen Sie sich das Profil von KlaK an!   Senden Sie eine Private Message an KlaK  Schreiben Sie einen Gästebucheintrag für KlaK

Beiträge: 2624
Registriert: 02.05.2006

Office 2010; Office365
Visual Basic

erstellt am: 13. Mrz. 2016 21:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für uwehinku 10 Unities + Antwort hilfreich

Hallo Uwe,
Eine Beispieltabelle wäre hilfreich oder Bilder wie es vor nach Änderung aussehen soll
So wie Du das beschreibst müßte ja bei einer Änderung die Tabelle 2 jedesmal komplett geändert werden.
Was soll den geschehen wenn aus einer 4 eine 5 (oder andere Zahl wird?
Was passiert mit nachfolgenden Zeilen die schon eine 4 (mit kopieren) hatten, soll trotzdem der neue Wert 4 unten angefügt werden?
Kann es passieren dass die 4 wieder zu einer 3 wird? Müßte die Zeile dann gelöscht werden?
Fragen über Fragen ...

Grüße
Klaus 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

uwehinku
Mitglied
Rentner

Sehen Sie sich das Profil von uwehinku an!   Senden Sie eine Private Message an uwehinku  Schreiben Sie einen Gästebucheintrag für uwehinku

Beiträge: 4
Registriert: 13.03.2016

erstellt am: 13. Mrz. 2016 22:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


Ubersicht2016-1.pdf

 
Hallo Klaus,
anbei die Excel Datei.
bei der Eingabe von 4 erscheint die grüne Farbe.
Nun bitte an leere Stelle in Tabelle9 (3)
Gruß
Uwe

------------------
Uwe

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



Sehen Sie sich das Profil von KlaK an!   Senden Sie eine Private Message an KlaK  Schreiben Sie einen Gästebucheintrag für KlaK

Beiträge: 2624
Registriert: 02.05.2006

Office 2010; Office365
Visual Basic

erstellt am: 13. Mrz. 2016 22:50    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für uwehinku 10 Unities + Antwort hilfreich


20160313_Uebersicht.zip

 
Hallo Uwe,
war zwar nicht die Exceldatei aber ist ja schnell umgewandelt
Beiliegend das Beispiel, allerdings wird das Ereignis nicht bei einem Enter in der Spalte B ausgeführt, sondern wenn der Wert in der Zelle auf 4 geändert wird.
Kopiert Zeilen in Tabelle2

Grüße
Klaus  

PS.: Ist der gleiche Code wie oben, den Du anscheinend falsch eingegeben hast.
PPS: Für nur am Code interessierte, hier der geänderte Code:

Code:

Private Sub Worksheet_Change(ByVal Von As Range)
  ' Überprüfe ob auslösendes Element Spalte B mit Inhalt 4 war
  ' und übergebe die auslösende Zeile zum Kopieren
  If Von.Count = 1 Then ' nur durchführen wenn eine Zelle geändert wurde
    If Von.Column = 2 And Von.Value = 4 Then Call B4_Werte_Kopieren(Von.Row)
  End If
End Sub

Sub B4_Werte_Kopieren(Zeile As Long)
  ' Wenn in Spalte B der Wert 4 eingegeben wurde
  ' kopiere die Werte der Spalten C, E und F nach Tabelle2
  Dim CS As Worksheet ' neue Tabelle
  Set CS = Worksheets("Tabelle2") ' <= Hier könnte jedes andere Tabellenblatt eingestellt werden
  Dim NZ As Long                  ' festlegen der neuen Zeile
  Dim Spalte As Long
  ' nächste freie Zeiel suchen, Zeile 1 = Überschrift
  NZ = 2
  While Not IsEmpty(CS.Cells(NZ, 1))
    NZ = NZ + 1
  Wend
 
  Spalte = 1 ' A
  Cells(Zeile, Spalte).Copy Destination:=CS.Cells(NZ, Spalte)
  Spalte = 3 ' C
  Cells(Zeile, Spalte).Copy Destination:=CS.Cells(NZ, Spalte)

End Sub


[Diese Nachricht wurde von KlaK am 13. Mrz. 2016 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

uwehinku
Mitglied
Rentner

Sehen Sie sich das Profil von uwehinku an!   Senden Sie eine Private Message an uwehinku  Schreiben Sie einen Gästebucheintrag für uwehinku

Beiträge: 4
Registriert: 13.03.2016

erstellt am: 14. Mrz. 2016 06:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke Dir. probiere morgen erst aus, da ich 2 Tage weg muss.
Melde mich dazu.
Danke noch einmal
Gruß
Uwe

------------------
Uwe

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Beverly
Mitglied
Dipl.-Geologe (Rentner)


Sehen Sie sich das Profil von Beverly an!   Senden Sie eine Private Message an Berverly  Schreiben Sie einen Gästebucheintrag für Berverly

Beiträge: 394
Registriert: 11.08.2007

erstellt am: 14. Mrz. 2016 08:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für uwehinku 10 Unities + Antwort hilfreich

Hi Uwe,

mit folgendem Code kann die 4 in Spalte B auch gleichzeitig in mehrere Zellen eingetragen werden:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim lngLetzte As Long
    If Target.Column = 2 Then
        With Worksheets("Tabelle9")
            ' letzte belegte Zeile in Spalte A ermitteln
            lngLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count)
            ' Schleife über alle Eingabezellen
            For Each Target In Intersect(Target, Columns(2))
                If Target = 4 Then
                    ' Zellen Spalte C, D und F in erste freie Zeile kopieren
                    Union(Cells(Target.Row, 3), Cells(Target.Row, 4), Cells(Target.Row, 6)).Copy .Cells(lngLetzte + 1, 1)
                    ' nächste freie Zeile
                    lngLetzte = lngLetzte + 1
                End If
            Next Target
        End With
    End If
End Sub

------------------
Bis später,
Karin

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz