Koordinate Auswiel

Dir hutt e grousse Monitor, awer d'Dëscher mat deenen Dir schafft sinn nach méi grouss. A kuckt iwwer den Ecran op der Sich no der néideger Informatioun, ass et ëmmer eng Chance fir Är Aen op déi nächst Linn ze "rutschen" an an déi falsch Richtung ze kucken. Ech kennen souguer Leit, déi fir esou Occasiounen ëmmer en hëlze Lineal no bei hinnen halen fir se un d'Linn um Monitor ze befestigen. Technologien vun der Zukunft! 

A wann déi aktuell Zeil a Kolonn markéiert sinn wann déi aktiv Zell iwwer d'Blat beweegt? Eng Aart vu Koordinatenauswiel wéi dës:

Besser wéi e Lineal, richteg?

Et gi verschidde Weeër fir d'Komplexitéit ze variéieren fir dëst ëmzesetzen. All Method huet seng Virdeeler an Nodeeler. Loosst eis se am Detail kucken.

Method 1. Selbstverständlech. Macro deen déi aktuell Zeil a Kolonn beliicht

Déi offensichtlechst Manéier fir eise Problem "op der Stir" ze léisen - mir brauchen e Makro, deen d'Verännerung vun der Auswiel op der Blat verfollegt an déi ganz Zeil a Kolonn fir déi aktuell Zell auswielen. Et ass och wënschenswäert, dës Funktioun wann néideg z'aktivéieren an auszeschalten, sou datt sou eng Kräizfërmeg Auswiel eis net verhënnert datt mir zum Beispill Formelen aginn, mä nëmme funktionnéiert wa mir d'Lëscht kucken op der Sich no der néideger Informatiounen. Dëst bréngt eis op déi dräi Makroen (wielen, aktivéieren an auszeschalten) déi an de Blatmodul bäigefüügt musse ginn.

Maacht e Blat mat engem Dësch op, an deem Dir esou eng Koordinatenauswiel wëllt kréien. Riets-klickt op de Tab Tab a wielt de Kommando aus dem Kontextmenü Quelltext (Source Code).D'Visual Basic Editor Fënster soll opmaachen. Kopéiert dësen Text vun dësen dräi Makroen an et:

Dim Coord_Selection As Boolean 'Global Variabel fir Selektioun an/aus Sub Selection_On() 'Macro on selection Coord_Selection = True End Sub Selection_Off() 'Macro off selection Coord_Selection = False End Sub 'Main Prozedur déi Selektioun mécht Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim WorkRange As Range If Target.Cells.Count > 1 Dann Exit Sub 'wann méi wéi 1 Zell ausgewielt ass, Sortie Wann Coord_Selection = False Dann Exit Sub 'wann d'Auswiel aus ass, fuert Applikatioun aus.ScreenUpdating = False Set WorkRange = Range ("A6:N300") 'Adress vum Aarbechtsberäich, an deem d'Auswiel sichtbar ass  

Ännert d'Adress vum Aarbechtsberäich op Är eegen - et ass an dësem Beräich datt eis Auswiel funktionnéiert. Dann de Visual Basic Editor zoumaachen an zréck op Excel.

Dréckt d'Tastatur Ofkiirzung ALT + F8fir eng Fënster opzemaachen mat enger Lëscht vu verfügbare Makroen. Makro Selektioun_An, wéi Dir kéint roden, enthält d'Koordinatenauswiel op der aktueller Blat, an de Makro Auswiel_Off - schalt et aus. An der selwechter Fënster, andeems Dir op de Knäppchen klickt Parameteren (Optiounen) Dir kënnt Tastatur Ofkiirzungen un dës Makroen zouginn fir einfach ze starten.

Virdeeler vun dëser Method:

  • relativ Liichtegkeet vun Ëmsetzung
  • Selektioun - d'Operatioun ass harmlos an ännert net den Inhalt oder d'Formatéierung vun de Blatzellen op iergendeng Manéier, alles bleift wéi et ass

Nodeeler vun dëser Method:

  • esou Selektioun funktionnéiert net richteg wann et fusionéiert Zellen um Blat sinn - all Zeilen a Kolonnen, déi an der Unioun abegraff sinn, ginn op eemol ausgewielt
  • wann Dir zoufälleg op d'Delete Schlëssel dréckt, da gëtt net nëmmen déi aktiv Zelle geläscht, mee de ganze gewielte Gebitt, dh Daten aus der ganzer Zeil a Kolonn läschen

Method 2. Original. CELL + Conditional Formatéierungsfunktioun

Dës Method, obwuel et e puer Nodeeler huet, schéngt mir ganz elegant. Fir eppes ëmzesetzen andeems Dir nëmmen déi agebaute Excel Tools benotzt, minimal an d'Programméierung an VBA ze kommen ass Aerobatik 😉

D'Method baséiert op d'Benotzung vun der CELL Funktioun, déi vill verschidden Informatioun iwwer eng bestëmmten Zell ginn kann - Héicht, Breet, Rei-Kolonn Zuel, Zuel Format, etc. Dës Funktioun huet zwee Argumenter:

  • e Code Wuert fir de Parameter, wéi "Kolonn" oder "Rei"
  • d'Adress vun der Zell fir déi mir de Wäert vun dësem Parameter bestëmmen wëllen

Den Trick ass datt dat zweet Argument fakultativ ass. Wann et net spezifizéiert ass, da gëtt déi aktuell aktiv Zell geholl.

Den zweete Bestanddeel vun dëser Method ass bedingt Formatéierung. Dës extrem nëtzlech Excel Feature erlaabt Iech automatesch Zellen ze formatéieren wa se spezifizéierte Konditiounen erfëllen. Wa mir dës zwou Iddien an eng kombinéieren, kréie mir de folgenden Algorithmus fir eis Koordinatenauswiel duerch bedingungsvoll Formatéierung ëmzesetzen:

  1. Mir wielt eisen Dësch, also déi Zellen an deenen d'Koordinatenauswiel an Zukunft soll ugewise ginn.
  2. An Excel 2003 a méi al, öffnen de Menü Format – Conditional Formatting – Formel (Format - Conditional Formatting - Formel). An Excel 2007 a méi nei - klickt op de Tab Home (Heem)Knäppchen Conditional Formatéierung - Erstellt Regel (Konditiounsformatéierung - Regel erstellen) a wielt de Regel Typ Benotzt eng Formel fir ze bestëmmen wéi eng Zellen ze formatéieren (Formel benotzen)
  3. Gitt d'Formel fir eis Koordinatenauswiel un:

    =ODER(ZELL(“Zeil”)=REI(A2),ZELL(“Kolonn”)=KOLONN(A2))

    =ODER(ZELL(«Zeil»)=REI(A1),ZELL(«Kolonn»)=KOLONN(A1))

    Dës Formel kontrolléiert fir ze kucken ob d'Kolonnnummer vun all Zell an der Tabell d'selwecht ass wéi d'Kolonnnummer vun der aktueller Zell. Och mat Sailen. Sou ginn nëmmen déi Zellen ausgefëllt, déi entweder eng Kolonnnummer oder eng Zeilnummer hunn, déi mat der aktueller Zell entsprécht. An dat ass déi Kräizfërmeg Koordinatenauswiel déi mir wëllen erreechen.

  4. Press Framework (Format) a setzt d'Füllfaarf.

Alles ass bal fäerdeg, awer et gëtt eng Nuance. D'Tatsaach ass datt Excel keng Ännerung vun der Auswiel als Ännerung vun den Donnéeën op der Blat betruecht. An, als Resultat, gëtt et net d'Rekalkulatioun vun de Formelen an d'Offärbung vun der bedingte Formatéierung ausléisen nëmmen wann d'Positioun vun der aktiver Zelle ännert. Dofir, loosst eis en einfachen Makro zum Blatmodul addéieren deen dat mécht. Riets-klickt op de Tab Tab a wielt de Kommando aus dem Kontextmenü Quelltext (Source Code).D'Visual Basic Editor Fënster soll opmaachen. Kopéiert dësen Text vun dësem einfachen Makro an et:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) ActiveCell.Calculate End Sub  

Elo, wann d'Selektioun ännert, gëtt de Prozess vun der neiberechnung vun der Formel mat der Funktioun gestart ZELL an der bedingter Formatéierung an iwwerschwemmt déi aktuell Zeil a Kolonn.

Virdeeler vun dëser Method:

  • Conditional Formatéierung brécht net personaliséiert Tabellformatéierung
  • Dës Auswieloptioun funktionnéiert korrekt mat fusionéierte Zellen.
  • Kee Risiko fir eng ganz Zeil a Kolonn vun Daten op zoufälleg Klick ze läschen läsche.
  • Macros gi minimal benotzt

Nodeeler vun dëser Method:

  • D'Formel fir bedingt Formatéierung muss manuell agefouert ginn.
  • Et gëtt kee séiere Wee fir esou Formatéierung z'aktivéieren / auszeschalten - et ass ëmmer aktivéiert bis d'Regel geläscht gëtt.

Method 3. Optimal. Conditional Formatéierung + Macroen

Golden heescht. Mir benotzen de Mechanismus fir d'Selektioun op der Blat ze verfolgen mat Makroen vun der Method-1 a fügen se sécher Highlight derbäi mat der bedingter Formatéierung vun der Method-2.

Maacht e Blat mat engem Dësch op, an deem Dir esou eng Koordinatenauswiel wëllt kréien. Riets-klickt op de Tab Tab a wielt de Kommando aus dem Kontextmenü Quelltext (Source Code).D'Visual Basic Editor Fënster soll opmaachen. Kopéiert dësen Text vun dësen dräi Makroen an et:

Dim Coord_Selection As Boolean Sub Selection_On() Coord_Selection = True End Sub Sub Selection_Off() Coord_Selection = False End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim WorkRange As Range, CrossRange As Range Set WorkRange = Range("A7"):N 'адрес рабочего диапазона с таблицей If Target.Count > 300 Then Exit Sub If Coord_Selection = False Then WorkRange.FormatConditions.Delete Exit Sub End If Application.ScreenUpdating = False If Not Is Not Intersect(Target) WorkRange, Union(Target.EntireRow, Target.EntireColumn)) WorkRange.FormatConditions.Delete CrossRange.FormatConditions.Add Type:=xlExpression, Formula1:="=1" CrossRange.FormatConditions(1).Interior.ColorIndex.FormatConditions = 1 Target .Läschen Enn Wann Enn Sub  

Vergiesst net d'Aarbechtsberäich Adress op Är Dësch Adress ze änneren. Den Visual Basic Editor zoumaachen an zréck op Excel. Fir déi addéiert Makroen ze benotzen, dréckt d'Tastatur Ofkiirzung ALT + F8  a fuert op déiselwecht Manéier wéi Method 1. 

Method 4. Schéin. FollowCellPointer Add-on

Excel MVP Jan Karel Pieterse aus Holland gëtt e gratis Add-on op senger Websäit FollowCellPointer(36Kb), wat dee selwechte Problem léist andeems se grafesch Pfeillinne mat Macroen zeechnen fir déi aktuell Zeil a Kolonn ze markéieren:

 

Flott Léisung. Net ouni Glitches op Plaze , awer definitiv wäert e probéieren. Luet den Archiv erof, packt et op Disk an installéiert den Add-on:

  • an Excel 2003 a méi al - duerch de Menü Service – Add-ons – Iwwersiicht (Tools - Add-Ins - Browst)
  • an Excel 2007 a spéider, duerch Datei - Optiounen - Add-ons - Go - Browst (Datei - Excel Optiounen - Add-Ins - Gitt op - Browst)

  • Wat sinn Makroen, wou Dir Makrocode a Visual Basic setzt

 

Hannerlooss eng Äntwert