KieVa Opublikowano 19 Maja 2008 Zgłoś Opublikowano 19 Maja 2008 Witam serdecznie, Mam taki problem. W Wordzie miałem zrobioną tabelkę z róznymi danymi. Imie, nazwisko itp itd. Takich rekordów nazbieralo mi się trochę i pewnego dnia ten plik się zepsuł ;/ Po odzyskaniu go mocno się zdeformował. Otóż są rekordy jeden po drugim z tymże chciałbym żeby były obok siebie te dotyczące jednej osoby. Myślę że tylko makro mi może pomóc ale nie wiem jak je dokładnie zdefiniować. Chodzi mi o coś takiego aby wiersze od 1 do 6 ustwaiło obok siebie oddzielając je srednikiem, a co 7 wiersz wrzuciło enter tak aby to był następny rekord. A wtedy eksportuje to do Accesa. TEn dokument jest ogromny i chyba ze dwa dni bym go ręcznie edytował :( A zależy mi na czesie bo do pracy potrzebnuje ten plik. Troszkę grunt mi się pali pod nogami. Bardzo proszę o pomoc. Wygląda tak : 1 aaaaaaa aaaaaaa aaaaaaa aaaaaaa aaaaaaa aaaaaaa 6 aaaaaaa aaaaaaa aaaaaaa aaaaaaa a chciałbym żeby wyglądało tak:) 1;aaaaaaa;aaaaaaa;aaaaaaa;aaaaaaa;aaaaaaa 6;aaaaaaa;aaaaaaa;aaaaaaa;aaaaaaa;aaaaaaa Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 24 Maja 2008 Zgłoś Opublikowano 24 Maja 2008 Witam Jesli temat jest jeszcze aktualny to prosze oto moje rozwiazanie: Sub Makro() Dim zakres As Integer 'Biezaca liczba wierszy w dokumencie Dim licznik As Integer 'Licznik wypelnianych wierszy Dim licznik_pom As Integer 'Licznik do scalania okreslonej liczby wierszy Dim liczba_wierszy_do_scalenia As Integer 'Liczba scalanych wierszy zakres = ActiveDocument.Paragraphs.Count If zakres >= 2 Then licznik = 1 licznik_pom = 2 liczba_wierszy_do_scalenia = 7 Do While licznik_pom <= (zakres - licznik + 1) If (licznik_pom Mod liczba_wierszy_do_scalenia = 0) Then ActiveDocument.Paragraphs(licznik).Range.Words.Last.InsertBefore (";") ActiveDocument.Paragraphs(licznik).Range.Words.Last.Delete licznik = licznik + 1 licznik_pom = 2 zakres = ActiveDocument.Paragraphs.Count Else ActiveDocument.Paragraphs(licznik).Range.Words.Last.InsertBefore (";") ActiveDocument.Paragraphs(licznik).Range.Words.Last.Delete licznik_pom = licznik_pom + 1 End If Loop End If End Sub Moze jeszcze slowko dopowiedzenia: - makro napisalem i testowalem pod Wordem 2007 - w kodzie ktory podalem scalanych jest w sumie 7 wierszy a w Twoim przykladzie jest 6 wiec musisz sobie zmienic zmienna liczba_wierszy_do_scalenia = ??? na odpowiednia wartosc - mimo wszystko zachowaj ostroznosc - jesli to sa jakies super wazne dane to zrob kopie :) Pozdr Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...