Achso entschuldige, nicht aufgepasst!

Also 20-8 = 12.

Code:
  u8g2.setDrawColor(1); /* color 1 for the box */
  u8g2.drawBox(10,20-12,Bar1,15);
  u8g2.setDrawColor(2); /* color 1 for the box */
  u8g2.drawStr(25,20,"Wert 1 = ");  // write something to the internal memory
  u8g2.setCursor(95, 20);
  u8g2.print(Bar1);  // write something to the internal memory


  u8g2.setDrawColor(1); /* color 1 for the box */
  u8g2.drawBox(10,40-12,Bar2,15);
  u8g2.setDrawColor(2); /* color 1 for the box */
  u8g2.drawStr(25,40,"Wert 2 = ");    // write something to the internal memory
  u8g2.setCursor(95, 40);
  u8g2.print(Bar2);  // write something to the internal memory


  u8g2.setDrawColor(1); /* color 1 for the box */
  u8g2.drawBox(10,60-12,Bar3,15);
  u8g2.setDrawColor(2); /* color 1 for the box */
  u8g2.drawStr(25,60,"Wert 3 = ");  // write something to the internal memory
  u8g2.setCursor(95, 60);
  u8g2.print(Bar3);  // write something to the internal memory

MMM, in der Loop habe ich dafür ein IF ELSE Konstrukt, wo der Wert für "Cursor" je nach IST-Position und Tastendruck wechselt.
Das ja, das stimmt. Aber für die Ausgabe nutzt das so nichts. Weil Du beim Schreiben in den Pixelpuffer immer alles neu schreibst, nachdem der Puffer gelöscht wurde.


MfG