Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Problem z makrem kopiującym zawartość komórek

35 views
Skip to first unread message

Paweł

unread,
Feb 9, 2011, 5:31:55 AM2/9/11
to
Witam

Nie wiem dlaczego poniższe makro nie chce się uruchomić, może ktoś mi powie
dlaczego wyrzuca błąd "Object variable or with block variable not set ?

Dim i As Long
Dim j As Long
Dim komorka As Range
For i = 1 To Selection.Rows.Count
For j = 1 To Selection.Columns.Count
komorka(i, j).Value = Selection(i, j).Value
If (Len(komorka)) > 0 Then
Arkusz1.Cells(i, j + 3).Value = komorka(i, j).Value
End If
Next j
Next i
End Sub

Makro ma za zadanie kopiować z 4 pierwszych kolumn zawartość komórki do 5 i
kolejnych jeśli wszyskie 4 są wypełnione (a zwykle tylko 2 z 4 komórek będą
zawierały jakieś dane ale nie wiadomo w której kolumnie) ? Oczywiście te
kolumny są zaznaczone, jakieś sugestie ?

Pozrawiam Pawel


Cynio

unread,
Feb 10, 2011, 9:05:07 AM2/10/11
to
On 9 Lut, 11:31, "Paweł" <gamac...@op.pl> wrote:

> Makro ma za zadanie kopiować z 4 pierwszych kolumn zawartość komórki do 5 i
> kolejnych jeśli wszyskie 4 są wypełnione (a zwykle tylko 2 z 4 komórek będą
> zawierały jakieś dane ale nie wiadomo w której kolumnie) ? Oczywiście te
> kolumny są zaznaczone, jakieś sugestie ?

sprawdź poniższe makro, działa bez zaznaczania kolumn, według tego co
napisałeś, jesli komórki w dowolny wierszu od A do D sa wypełnione to
kopiuje je do tego samego wiersza do kolumn E H

Sub kopiowanie()
Dim i As Long
Z = ActiveSheet.UsedRange.Rows.Count

For i = 1 To Z
If Application.WorksheetFunction.CountA(Rows(i)) = 4 Then
Range("A" & i & ":D" & i).Copy Range("E" & i)
End If
Next i
End Sub

--
Pozdr.
Cynio

Paweł

unread,
Feb 17, 2011, 11:54:06 AM2/17/11
to

Użytkownik "Cynio" <cyni...@gmail.com> napisał w wiadomości
news:19087fbc-5df1-4767...@s11g2000yqh.googlegroups.com...

On 9 Lut, 11:31, "Paweł" <gamac...@op.pl> wrote:

> Makro ma za zadanie kopiować z 4 pierwszych kolumn zawartość komórki do 5
> i
> kolejnych jeśli wszyskie 4 są wypełnione (a zwykle tylko 2 z 4 komórek
> będą
> zawierały jakieś dane ale nie wiadomo w której kolumnie) ? Oczywiście te
> kolumny są zaznaczone, jakieś sugestie ?

sprawdź poniższe makro [...]

Pozdr.
Cynio
----------------------------------

Dzięki za odpowiedź makro działa oczywiście jednak nie tak jak potrzeba,
gdyż
jak napisałem dane są na pewno w 1 (pierwszej) kolumnie a nastęnie tylko w 2
(drugiej) lub np. tylko
w 3(trzeciej) itd. Te makro działa tylko dla wierszy które mają wypełniony
wszystkie 4
kolumny aczkolwiek widzę, że źle sformułowałem problem chociaż w nawiasie
podałem, że dane mogą być tylko w niektórych z komórek danego wiersza. Żeby
zilustrować problem przedstawie poniżej 2 tabelki:

tabelka surowa:

okaz | waga1 | waga2 | waga3
ww | 1.0 | |
| | |
ss | | | 4.45
sk | | 5.66 |

tabelka wynikowa:

okaz | waga
ww | 1.0
ss | 4.45
sk | 5.66

Przepraszam za zamieszanie i zgóry dzięki za koleją podpowiedź.

Pozdrawiam Paweł

Cynio

unread,
Feb 18, 2011, 4:53:58 AM2/18/11
to
Sprawdź poniższe makro:

Sub kopiowanie()
Dim i As Long

Z = ActiveSheet.UsedRange.Rows.Count
k = Range("E65536").End(xlUp).Row + 1

Range("E1") = "okaz"
Range("f1") = "waga"

For i = 2 To Z
For j = 1 To 4

If Cells(i, 1) <> "" And j = 1 Then Cells(k, 5) = Cells(i, 1)
If Cells(i, j) <> "" And j > 1 Then Cells(k, 6) = Cells(i, j)

Next j

Paweł

unread,
Feb 18, 2011, 11:40:41 AM2/18/11
to

Użytkownik "Cynio" <cyni...@gmail.com> napisał w wiadomości
news:c9589bd4-b8ea-4ac3...@k9g2000yqi.googlegroups.com...
Sprawdź poniższe makro:

Next j

Next i
End Sub

--
Pozdr.
Cynio

Za bardzo nie mogę sprawdzić czy to makro działa właściwie, ponieważ
wszystkie wiersze z "tabelki" źródłowej kopiują się do jednego wiersza
"tabelki" docelowej w rezultacie mam tylko w niej wypisane ostatnie badanie.

Pozdrawiam Paweł

Paweł

unread,
Feb 18, 2011, 12:27:59 PM2/18/11
to

Użytkownik "Paweł" <gama...@op.pl> napisał w wiadomości
news:4d5ea109$0$2460$6578...@news.neostrada.pl...

>
> Użytkownik "Cynio" <cyni...@gmail.com> napisał w wiadomości
> news:c9589bd4-b8ea-4ac3...@k9g2000yqi.googlegroups.com...
> Sprawdź poniższe makro:
>
> Sub kopiowanie()
[...]

> --
> Pozdr.
> Cynio
>
> Za bardzo nie mogę sprawdzić czy to makro działa właściwie, ponieważ
> wszystkie wiersze z "tabelki" źródłowej kopiują się do jednego wiersza
> "tabelki" docelowej w rezultacie mam tylko w niej wypisane ostatnie
> badanie.
>
> Pozdrawiam Paweł

Uzupełniłem podesłane przez Pana makro i ostatecznie moją tabelkę tworzy
poniższe makro:

Sub kopiowanie()
Dim i As Long

Dim r As Long

Z = ActiveSheet.UsedRange.Rows.Count
k = Range("E65536").End(xlUp).Row + 1
Range("E1") = "okaz"
Range("f1") = "waga"

r = 2
For i = 1 To Z


For j = 1 To 4

If Cells(i, 1) <> "" And j = 1 Then Cells(r, 5) = Cells(i, 1)
If Cells(i, j) <> "" And j > 1 Then Cells(r, 6) = Cells(i, j)
If Cells(i, j) <> "" And j > 1 Then r = r + 1


Next j
Next i
End Sub

Jeszcze raz bardzo dziękuję za pomoc, pozdrawiam Paweł

Cynio

unread,
Feb 21, 2011, 2:09:19 AM2/21/11
to
On 18 Lut, 17:40, Paweł <gamac...@op.pl> wrote:

> Za bardzo nie mogę sprawdzić czy to makro działa właściwie, ponieważ
> wszystkie wiersze z "tabelki" źródłowej kopiują się do jednego wiersza
> "tabelki" docelowej w rezultacie mam tylko w niej wypisane ostatnie badanie.

oj sorrki
pojawił się błąd w moim makrze, poniżej już powinno być ok

0 new messages