Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
Przesunięty przez: Artik
08-06-2020, 10:15
kopiowanie komórek zależnych od innych komórek
Autor Wiadomość
robek
Fan Excela


Posty: 68
Wysłany: 17-06-2020, 21:09   

jeszcze jedno przy tym makro ( starym co wcześniej pisaliśmy), co którejs linijki nie zaciąga dany.
Do 40 jest ok a potem kilka zaciągnie kilka nie w czym moze byc problem
ID posta: 388766 Skopiuj do schowka
 
 
dm 
Excel Expert


Wersja: Win Office 2013
Pomógł: 487 razy
Posty: 1329
Wysłany: 17-06-2020, 23:13   

Poprawiony kod
Kod:
Option Explicit

Sub Aktualizuj()
Dim i As Long, j As Long, r As Long, LstT As Long, Lst As Long
Dim strFilePath As String, Rng As Range
Dim dane As Workbook
Dim okno As FileDialog, tbl

On Error Resume Next
With Application
.ScreenUpdating = False
.DisplayAlerts = False
.Calculation = xlCalculationManual
    Set okno = Application.FileDialog(msoFileDialogFilePicker)
    With okno
        .InitialFileName = ThisWorkbook.Path & "\"
        '.InitialFileName = Tutaj wpisz Twoją ścieżkę do folderu z plikami
        .AllowMultiSelect = False
        .Filters.Clear
        .Title = "Wybierz plik"
        If .Show Then
            strFilePath = .SelectedItems(1)
        End If
    End With
    Set okno = Nothing
Workbooks.Open strFilePath
Set dane = ActiveWorkbook
With dane.Sheets("dane")
    Lst = .Cells(.Rows.Count, "A").End(xlUp).Row
    tbl = .Range("A3:AW" & Lst)
End With
dane.Close False
With ThisWorkbook
    With ActiveSheet
        LstT = .Cells(.Rows.Count, "A").End(xlUp).Row

        For i = 1 To UBound(tbl)
            Set Rng = .Range("E5", "E" & LstT).Find(tbl(i, 1), LookIn:=xlValues)
            If Not Rng Is Nothing Then
                r = Rng.Row
                For j = 7 To 25
                     .Cells(r, j + 12) = tbl(i, j)
                Next j
            End If
        Next i
    End With
End With
.CutCopyMode = False

.DisplayAlerts = True
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
End With
'On Error GoTo 0

End Sub


dm
ID posta: 388770 Skopiuj do schowka
 
 
robek
Fan Excela


Posty: 68
Wysłany: 18-06-2020, 15:57   

Ok, za dużo kombinowałem, jest ok.
Tylko jest ten sam problem nie zaciąga dany ( mimo ze są w pliku źródłowym) z linni 41,48,49,65, 67,68,69,86,90,92 i czym dalej tym więcej braków.
Jak zmienić kolumny do których ma wkleić skopiowane dane
ID posta: 388794 Skopiuj do schowka
 
 
robek
Fan Excela


Posty: 68
Wysłany: 18-06-2020, 19:49   

Juz wiem w czym problem nie zaciąga danych z pliku źródłowego jeśli dany indeks sie powtarza np.
Plika źródłowy - do numeru 23569 przypisany kraj Polska. Czyli w pliku który utworze wstawi Polskę w odpowiednim miejscu ale jeśli znów ten numer powtórzy sie to już zostawi wolne miejsce.
A zależny mi by przypisywało zawsze.

Jeszcze chciałem zamienić kolumny gdzie są wklejane dane: konkretnie to kolumnę S z U, tylko mam pytanie gdzie to jest zapisane żeby wiedzieć i modź to zrobic samemu, bo chce przetestować by to co obecnie wstawia sie w kolumnę U wstawiało sie w G

Zgóry dziekuje z pomoc :-)
ID posta: 388799 Skopiuj do schowka
 
 
dm 
Excel Expert


Wersja: Win Office 2013
Pomógł: 487 razy
Posty: 1329
Wysłany: 18-06-2020, 22:01   

robek tak się nie dogadamy. Zrób porządny załącznik z danymi i opisz o co właściwie chodzi.
Myślałem,że numery są unikatowe (tak wynikało z załącznika każdy nr. inny), a Ty piszesz
Cytat:
Plika źródłowy - do numeru 23569 przypisany kraj Polska. Czyli w pliku który utworze wstawi Polskę w odpowiednim miejscu ale jeśli znów ten numer powtórzy sie to już zostawi wolne miejsce.
A zależny mi by przypisywało zawsze.
Tzn. ma wpisywać to samo w każdym wierszu z nr.23569.
Dane wpisuję się w pętli For i ( w kolejne kolumny), chcąc wpisywać "U wstawiało sie w G " trzeba zmienić/wymyślić nowy sposób.
dm
ID posta: 388802 Skopiuj do schowka
 
 
robek
Fan Excela


Posty: 68
Wysłany: 19-06-2020, 00:20   

To prawda trochę kręcę i zmieniam, sorry.
Narazie tylko to jeno - w kazym wierszu w którym powtorzy się ten czy inny numer ma być to samo przypisane. Np.
Jeżeli numer 23569 jest 5 razy to w każdym wierszy z tym numerem będzie mu w tym wypadku przypisana Polska
ID posta: 388806 Skopiuj do schowka
 
 
dm 
Excel Expert


Wersja: Win Office 2013
Pomógł: 487 razy
Posty: 1329
Wysłany: 19-06-2020, 10:56   

Zmień te fragmenty
Kod:
Sub Aktualizuj()
Dim i As Long, j As Long, Lst As Long
Dim dane As Workbook, strFilePath As String
Dim okno As FileDialog, tbl

.................
....................
With ThisWorkbook
    With ActiveSheet
        Lst = .Cells(.Rows.Count, "A").End(xlUp).Row
        For i = 1 To UBound(tbl)
            For j = 5 To Lst
                If .Cells(j, "E") = tbl(i, 1) Then
                .Cells(j, "S") = tbl(i, 2)
                .Cells(j, "G") = tbl(i, 3)
                .Cells(j, "T") = tbl(i, 4)
                ' itd
                End If
            Next j
           
        Next i
    End With
End With
.CutCopyMode = False

.DisplayAlerts = True
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
End With
'On Error GoTo 0

End Sub


dm
ID posta: 388828 Skopiuj do schowka
 
 
robek
Fan Excela


Posty: 68
Wysłany: 26-06-2020, 09:41   

Dzięki !!!
Teraz jest idealnie i łatwo zmieniać kolumny
ID posta: 389085 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.marketingNET.pl

Archiwum

Strona używa plików cookies.

Kliknij tutaj, żeby dowiedzieć się jaki jest cel używania cookies oraz jak zmienić ustawienia cookie w przeglądarce.
Korzystając ze strony użytkownik wyraża zgodę na używanie plików cookies, zgodnie z bieżącymi ustawieniami przeglądarki.
Sprawdź, w jaki sposób przetwarzamy dane osobowe