Znajdowanie położenia komórki rodziny części w Vba SolidWorks

Witam

Wróciłem do makro i trochę zmieniam swoją technikę , więc chciałbym prosić o pomoc.

Mam plik CAD z rodziną części o około 30 konfiguracjach, których nazwy są ładowane do listy przez pętlę For, dzięki czemu użytkownik może wybrać tę, której potrzebuje.
Każda konfiguracja reprezentuje zakresy średnic tej samej części: Konfiguracja 1 = część A o Ø0,1 - 1,0, Konfiguracja 2 = część A  o Ø 1,01 - 3,0, konfiguracja 3 = część A o Ø3,01 - 10,0 itd. Za pomocą utworzonych przeze mnie UserFroms użytkownik może wpisać średnicę w wybranym przez siebie zakresie (będącym parametrem). Następnie chciałbym, aby wartość zapisana w dedykowanym polu tekstowym trafiła do komórki rodziny części, której wiersz jest wierszem wybranej konfiguracji i kolumny odpowiadającej parametrowi średnicy.
Aby to zrobić, muszę znaleźć pozycję komórki konfiguracji, w rzeczywistości wiersz mi wystarczy, ponieważ wiem, że jest w kolumnie A, a następnie przesunąć w prawo, aż znajdę właściwą kolumnę.

Wyjaśnienie na zdjęciach:

Chciałbym znać numer wiersza czerwonej komórki, abym mógł zapisać wartość Ø w zielonej komórce.

Wszystko po to, aby powiedzieć, że chciałbym znaleźć pozycję komórki w kodzie VBA.
Mam nadzieję, że wyraziłem się jasno i dziękuję za odpowiedzi,

Miłego dnia

Rub25 powiedział:

Ponieważ jest to bez testowania tylko w mojej głowie, zapętliłbym wszystkie wiersze i jak tylko wcześniej wybrana wartość będzie pasować, wykonujesz swój kod (nie jestem wielkim fanem funkcji wyszukiwania Excela :!)

2 polubienia

Witam

Skoro powiedziałeś nam, czego szukasz, powiedz nam, jakie masz kryteria wyszukiwania...

Witam

W języku C# może to wyglądać mniej więcej tak:

sheet = workbook.ActiveSheet;
int i = 1;
while (sheet.Cells(i, "A").value != "D03.97 - 8.99")
{
    i++;
}
MessageBox.Show("Ligne n° :" + i);

Pozdrowienia

Witam

 

W ten sposób,  bardzo szybko i bez możliwości sprawdzenia, wydaje mi się, że dałoby to coś takiego:

 

Średnica = InputBox("Jaka średnica ?", "Wybór średnicy", Średnica) 'Skrzynka wejściowa 

set found = kolumny("c"). Find(what:=Diameter, lookat:=xlWhole) 'Znajdź wartość 'Średnica' jako dokładną wartość (lookAt:=xlWhole) w kolumnie C
Jeśli znaleziono to nic, to" Jeśli wartość nie zostanie znaleziona

Msgbox "Średnica nie istnieje"

Inaczej
   Row = Find.Row ' Zwraca numer wiersza

Zakończ się, jeśli

ActiveSheet.cells(wiersz;"A") = aktywne komórki

 

Pewnie trochę pomajsterkować, ale powinno Ci to bardzo pomóc :)

Dziękuję wszystkim za odpowiedzi!

Rzeczywiście, prosta pętla While wystarczy, aby zrobić to, o co prosiłem, dziękuję.

2 polubienia

W programie Excel dostępne są funkcje SZUKAJ, SZUKAJ, WYSZUKAJ