Clever-Excel-Forum

Normale Version: Codeabwandlung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo Steuerfuzzi,

ich mache das ja nicht. Das war der Code von Snb, bei dem ich dem TE behilflich sein wollte.

Aber, mich wundert, dass er schreibt, dass es bei ihm funktioniert.

@Anfänger

Code:
DisplayAllerts = False
.code
DisplayAllerts = True
Moin!
Nur meine Meinung …  :21:
Nicht immer ist kürzer(er Code) besser!
[ich erwarte heftigen Widerstand von snb]

Dies gilt insbesondere für jemanden, der bereits als Nickname DerAnfänger gewählt hat.

GetObject() sollte imo sorgfältig benutzt werden:
Code:
Dim Rhabarber As Object
Set Rhabarber = GetObject("C:\Test\beispiel.xlsx")
With Rhabarber
  'Code
End with
Set Rhabarber = Nothing

@atilla:
.DisplayAlerts braucht nicht zurückgesetzt werden!
Im Sinne einer (zwar umfangreicheren, aber) sorgfältigen Programmierung gehe ich mit Dir konform.

@snb: Feuer frei! ;)

Gruß Ralf
Hallo Ralf,
(22.02.2017, 17:24)RPP63 schrieb: [ -> ]Nicht immer ist kürzer(er Code) besser!
FULLACK!
(22.02.2017, 17:24)RPP63 schrieb: [ -> ]GetObject() sollte imo sorgfältig benutzt werden:
Code:
Dim Rhabarber As Object
Set Rhabarber = GetObject("C:\Test\beispiel.xlsx")
Zudem habe ich dadurch auch Zugriff auf die Intellisense-Funktion. Das ist mehr als hilfreich!
@Michael + Ralf danke schon mal für eure Hinweise
Die Intellisense-Funktion ist bezgl. der Dokumentation und der Möglichkeiten von GetObject ja in der Tat eine große Hilfe.

Doch ich geh euch mal weiter auf den Zeiger.

Wenn ich mir folgendes anschaue:
ThisWorkbook.Sheets(1).Range("A:A").SpecialCells(xlCellTypeConstants, 1).Select 'Zahlen
ThisWorkbook.Sheets(1).Range("A:A").SpecialCells(xlCellTypeConstants, 2).Select 'Strings

kann ich ja gezielt Daten bezüglich ihres Typs aus der Spalte 1 auswählen.

Frage: Wie sieht der Code aus wenn ich von meiner Quelldatei durch eine solche Filteranwendung genau diese Daten in die Datei Beispiel.xlsx bringen bzw. hinterher auch wieder holen möchte?
Geht so etwas überhaupt?
Zitat:Die Intellisense-Funktion ist bezgl. der Dokumentation und der Möglichkeiten von GetObject ja in der Tat eine große Hilfe.
Und die (Intellisense-) Hilfe wird noch größer, wenn Du den Object-Type noch genauer beschreiben kannst, da Du (aber VBA noch nicht!) ihn bereits kennst:
Code:
Dim Rhabarber As Workbook
Set Rhabarber = GetObject("C:\Test\beispiel.xlsx")

Und da Du Dich selbst als Anfänger titulierst:
Code:
ThisWorkbook.Sheets(1).Range("A:A")

  1. Sheets(1) ist das "linke". Wenn Dir jemand die Reihenfolge durcheinander bringt, crasht das Makro!
  2. Sheets(1) kann auch ein Diagrammblatt sein! Dann geht gar nüscht mehr!
  3. Nutze den .Name des Worksheets (Worksheets("MeineTabelle")) oder besser noch
  4. den .CodeName der Tabelle

Gruß Ralf
@Ralf
Danke.

Meine Frage von vorhin bezüglich der "specialCells" war  leider zu ungenau formuliert.

So etwas geht:
Range("A:A").SpecialCells(xlCellTypeConstants, 1).Copy Range("B:B")

Kann ich die ausgewählten Zellen aber auch so kopieren, das sie ihre "Lage" also ihre Zeilenposition nicht verlieren?
Hallo,

das ist der Spaß an der Sache, das man solche Dinge testet.
Ich hab es gemacht und nach einiger Wartezeit sehe ich, dass das keine gute Sache war das zu testen. :19:
 
Dann habe ich ein wenig rumgeschraubt und festgestellt, das geht nicht.
Hallöchen,

mal als Ansatz. Kopiere den kompletten Bereich, blende die xlCellTypeConstants aus, leere die sichtbaren und blende alle wieder ein.
Seiten: 1 2