Witam, poradziłem sobie już z tym problemem. Jeżeli kogoś interesuje ten temat to poniżej zamieszczam rozwiązanie:
Sub Aktualizacjacennika()
Dim i As Integer
Dim j As Integer
For i = 2 To 700
For j = 2 To 700
If Arkusz1.Cells(i, 4).Value = Arkusz2.Cells(j, 1).Value And Arkusz1.Cells(i, 4).Value <> "" And Arkusz2.Cells(j, 4).Value <> "BRAK" Then
Arkusz1.Cells(i, 6).Value = 1
Arkusz1.Cells(i, 8).Value = Arkusz2.Cells(j, 3).Value * 1.7
End If
If Arkusz1.Cells(i, 4).Value = Arkusz2.Cells(j, 1).Value And Arkusz1.Cells(i, 4).Value <> "" And Arkusz2.Cells(j, 4).Value = "BRAK" Then
Arkusz1.Cells(i, 6).Value = 0
End If
Next j
Next i
End Sub
Dziękuję bardzo za odpowiedź.
Cytat:Ad 2. Niezbyt rozumiem ... Musisz użyć instrukcji warunkowej If:
Kod VBA:
If Arkusz1.Cells(i, 8).Value = Arkusz2.Cells(j, 1).Value Then
'... instrukcja1
Else
'... instrukcja2
End if
To znaczy ja wiem, że muszę użyć instrukcji warunkowej if ale chodziło mi czy do porównywania typu znakowego (string) muszę użyć jakiejś specjalnej funkcji czy wystarczy najprostsze porównanie wartości z wykorzystaniem znaku =. Poniżej zamieszczam początkowy kod mojego programu:
Sub Ace()
Dim i As Integer
Dim j As Integer
For i = 2 To 1000
For j = 2 To 1000
if Arkusz1.Cells(i, 8).Value = Arkusz2.Cells(j, 1).Value
then Arkusz1.Cells.Value(i, 9) = 1
Else: Arkusz2.Cells(i, 4).Value = "BRAK"
End If
Next j
Next i
End Sub
Generalnie docelowo mój programik ma aktualizować cennik. Pętle for porównują komórki w dwóch arkuszach i gdy napotkają na taki sam kod produktu sprawdzają dostępność produktu w cenniku hurtowni, jeżeli jest dostępny ustalają cenę w moim cenniku na cena_hurtowni * moja prowizja. Jeżeli produkt nie jest dostępny w hurtowni ustalają dostępność w moim cenniku na 0. Oczywiście w kodzie programu tych warunków jeszcze nie zawarłem ponieważ napotkałem na problem przy pierwszej instrukcji warunkowej.
Z góry dziękuję za pomoc. |