PDA

Vollständige Version anzeigen : Spaltenanzahl=N und dann Namen übernehmen


bearni
01.07.2014, 09:07
Hallo ihr Lieben!
vielleicht könnt ihr mir ja weiter helfen: folgendes soll einen Makro schreiben der mir nachdem Wort "Mean" sucht-(Mean ist eine verbundene Spalte) im nächsten Schritt soll mir der Makro anzeigen wieviele Spalten unter "Mean" sind und dann soll im Anschluss einmal "meanSpalten" einfügen und die Bezeichnung übernehmen und dann einmal"MeanSpalten-1" einfügen und ebenfalls benennen: :entsetzt:
also Kurzfassung:
1."mean" suchen
2."mean-Spalten" =n
3.n-Spalten einfügen und namen übernehmen
4.n-1Spalten einfügen und ab dem 2.namen übernehmen.

das Problem ist einmal ist n z.b2 dann wieder 5....
Leider kenne ich mich im VBA nicht so gut aus und weiss nicht wie ich das machen soll oder ob da überhaupt geht....bitte um hilfe!!!
lg bearni

Hajo_Zi
01.07.2014, 09:13
ich hätte vermutet "Mean" steht in einer Zelle. Unter einer Zelle gibt es keine Spalten.
Was sind "meanSpalten"?

<img src="http://Hajo-Excel.de/images/grusz1.gif" align="middle" height="40" alt="Grußformel"><a href="http://Hajo-Excel.de/index.htm"><img border="0" src="http://Hajo-Excel.de/images/logo_hajo3.gif" align="middle" height="40" alt="Homepage"></a>

Mc Santa
01.07.2014, 09:17
Was sind "meanSpalten"?


[...] Mean ist eine verbundene [Zelle]. Im nächsten Schritt soll mir [das] Makro anzeigen wieviele Spalten unter [dieser verbundenen Zelle mit dem Inhalt] "Mean" sind [...]

Das ist meine Interpretation.
VG

bearni
01.07.2014, 09:24
hallo Hajo_Zi, danke erst mal für die Antwort.
"Mean" ist quasi die Überschrift(in verbundenen Zeilen)
und dann kommt eine 2.Überschrift(NICHT verbundene Zeilen) welche mir dann die Namen für später liefern....ca. so:
Mean
AB AC AD AE

und ich soll jetzt rausfinden wieviele "Spalten" es von AB bis...gibt
nach "mean" suchen hab ich schon, aber beim rest bin ich planlos
Cells.Find(What:="Mean", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate

danke für die Hilfe, lg Bearni

Hajo_Zi
01.07.2014, 09:31
Gut Du möchtest auf meinen Beitrag nicht komplett Antworten, ich kann damit Leben. Ich bin dann raus.

<a href="http://Hajo-Excel.de/index.htm" target="_blank" title="Hajo's Excelseiten">Gruß Hajo</a>

Mc Santa
01.07.2014, 09:32
Hallo,

zunächst möchte ich dir unbedingt empfehlen, dich von verbundenen Zellen zu trennen, sofern möglich. Wenn du programmierst, gibt dir das immer wieder Probleme auf!
Für die Optik (Schrift wird mittig dargestellt) gibt es eine Alternative:
Zellen formatieren > Ausrichtung > Horizontal (DropDown) > Über Auswahl zentrieren

Solltest du dennoch nicht auf die Verbundene Zelle verzichten können, kannst du folgendermaßen herausfinden, über wie viele Spalten sie sich erstreckt:
Range("F11").MergeArea.Columns.CountHilft dir das weiter?
VG

@Hajo: auf deinen Beitrag wurde sogar zweimal geantwortet!

bearni
01.07.2014, 09:33
@Hajo_Zi ?? warum keine antwort?? hab dir doch gerade geantwortet? und es versucht nochmal zu erklären!?

@Mc Santa, danke für die Antwort, leider darf ich auf die verbundenen Zellen nicht verzichten. weisst du vielleicht jetzt noch wie ich es hinbekommen, dass der Name eine Zelle in eine andere übernommen wird? leider kann ich keine range genau bestimmen da die zellen variabel sind. danke dir

Mc Santa
01.07.2014, 09:42
weisst du vielleicht jetzt noch wie ich es hinbekommen, dass der Name eine Zelle in eine andere übernommen wird? leider kann ich keine range genau bestimmen da die zellen variabel sind. danke dir

Leider ist mir die Frage nicht ganz klar, was genau willst du erreichen?

Über .Find kannst du deine Zelle finden und anschließend die Anzahl der Spalten ausgeben

Dim meanZelle as Range
Set meanZelle = Cells.Find(What:="Mean", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False)

MsgBox meanZelle.MergeArea.Columns.Count

Hilft dir das weiter?

bearni
01.07.2014, 09:53
danke dir Mc Santa. wirklich grosses danke für die Hilfe.
was ich meine ist dann:
.columns.count =N
insert N.columns
ActiveCell.FormulaR1C1 = "AB" (aber für dieses AB/AC/AD...brauch ich den bezug zu "Mean"-also nicht den Name schreiben sondern so wie eine formel...vlookup oder so etwas? aber wie gesagt es sind nicht immer gleich viele Spalten einzufügen....
danke nochmal, lg bearni

Mc Santa
01.07.2014, 10:04
danke dir Mc Santa. wirklich grosses danke für die Hilfe.
was ich meine ist dann:
.columns.count =N
insert N.columns
ActiveCell.FormulaR1C1 = "AB" (aber für dieses AB/AC/AD...brauch ich den bezug zu "Mean"-also nicht den Name schreiben sondern so wie eine formel...vlookup oder so etwas? aber wie gesagt es sind nicht immer gleich viele Spalten einzufügen....
danke nochmal, lg bearni

Versuche bitte mal den markierten Teil in Worten zu beschreiben komplett ohne Code, denn ich vermute, dass du etwas anderes meinst, als der Code ausdrückt.
Am besten ist es wohl, wenn du eine Bespieldatei hochlädst, mit Vorher- und Nachher-Situation.

VG

bearni
01.07.2014, 10:21
Hoffe es funktioniert und danke dir
also die gelben Sachen sollen dann bearbeitet werden....
"mean" gibt mir meine n-Daten vor...