Witam
Ostrożny Excel pozwala tylko dwóm użytkownikom edytować jeden plik w tym samym czasie!
Jeśli Utilisateur_1 otworzy plik, uzyskując do niego dostęp w celu zapisu, nie Utilisateur_2 uzyskać dostępu do pliku w celu zapisu.
Witam
Ostrożny Excel pozwala tylko dwóm użytkownikom edytować jeden plik w tym samym czasie!
Jeśli Utilisateur_1 otworzy plik, uzyskując do niego dostęp w celu zapisu, nie Utilisateur_2 uzyskać dostępu do pliku w celu zapisu.
Dziękuję za pomoc, zajmę się tym i będę Cię informować na bieżąco.
Jeśli masz jakieś przykłady, jestem biorcą.
Dziękuję za uwagę
Zgadzam się z @Remrem
A jeśli nie, bo miałem trochę czasu:
Sub AutoName()
Nazwa = Application.UserName ' nazwa użytkownika
Derline = Arkusz1.Komórki(1, "B"). Koniec(xlW dół). Wiersz ' Pobierze ostatni niepusty wiersz komórki kolumny "Data" arkusz1 z komórki "B3"
Arkusz1.Cells(Derligne, "B") = Data 'Wprowadzono datę dnia
coul = Cells.Find(Nazwa, Komórki(1, "E")). Interior.ColorIndex 'Pobiera kolor pola z nazwą użytkownika
zakres(komórki(derligne, "a"), komórki(derligne, "c")). Interior.ColorIndex = kolor
Koniec subwoofera
Z drugiej strony bądź ostrożny. Nazwa użytkownika musi być RYGORYSTYCZNIE taka sama między plikiem Excela a komputerem, w przeciwnym razie nie może znaleźć (te same spacje, te same wielkie litery itp.).
Nadal uważam, że jest to źródło nudy dla twojej rzeczy!
Dziękuję coin37coin,
Nie, nie tkt, to dla uproszczenia pliku Word do ręcznego wypełnienia. Są tacy, którym czasami udaje się popełnić błędy. Kiedy jedziemy za szybko...
Dziękuję, testuję to wszystko.
Witam, wypróbowałem makro. To nie działa.
To zaskakujące, wczoraj działało to bardzo dobrze.
Na jakim poziomie blokuje?
Edit: Tyle samo dla mnie, napisała zamiast ostatniej linijki (mała niezgodność)
Sub AutoName()
Nazwa = Application.UserName ' nazwa użytkownika
Derline = Arkusz1.Komórki(1, "B"). Koniec(xlW dół). Wiersz ' Pobierze ostatni niepusty wiersz komórki kolumny "Data" arkusz1 z komórki "B3"
Linia = Derline + 1 'Dodaj linię, aby przejść na puste miejsce
Arkusz1.Komórki(Linia, "B") = Data
coul = Cells.Find(Nazwa, Komórki(1, "E")). Interior.ColorIndex 'Pobiera kolor pola z nazwą użytkownika
zakres(komórki(linia, "a"), komórki(linia, "c")). Interior.ColorIndex = kolor
Koniec subwoofera
Witam
Oto poprawione makro, ale będzie to zależało od kolejności działań użytkownika:
Najpierw napisze w swoim referencji na końcu listy ?
Sub AutoName()
Nazwa = Application.UserName ' nazwa użytkownika
Derligne = Arkusze("Arkusz1"). Komórki(1, "A"). Koniec(xlW dół). Wiersz ' Pobierze ostatni niepusty wiersz komórki kolumny "Data" arkusz1 z komórki "B3"
Arkusze("Arkusz1"). Komórki (Derligne, 2). Value = Date 'Wprowadzono datę dnia
Set cell = Cells.Find(what:=Name, LookAt:=xlWhole) 'Pobiera kolor pola z nazwą użytkownika
coul = komórka. Interior.ColorIndex (Indeks kolorów)
zakres(komórki(derligne, "a"), komórki(derligne, "c")). Interior.ColorIndex = kolor
Koniec subwoofera
Właściwie dwie różne wersje.
W przypadku @PL's najpierw wprowadzasz odniesienie, a następnie umieszcza datę i kolor w auto.
W moim przypadku on umieszcza datę i kolor w auto, a następnie umieszczasz odniesienie.
@PL: FYI, dajesz tylko swojemu makro wybór, aby wziąć "użytkownik 2" jako kolor ;) (albo coś mi umyka)
Ponownie użyłem twojego pierwszego makro coin37coin i w rzeczywistości działa, ale testuję twoje drugie, aby zobaczyć.
Tak, poprawiłem, przetestowałem dla użytkownika 2 i zapomniałem zmodyfikować !
Dzięki za wszystkie makro,
Nie mogę umieścić makra za pomocą przycisku. Makro nie znajduje się już na otwarciu. Zaczynam wariować.
Oto nowa tabela
Aby uzyskać przycisk, musisz przejść do zakładki "programista" => wstaw => Przycisk
Następnie wstawiasz przycisk do arkusza tak, jakby był notatką (kliknięcie lewym i prawym przyciskiem myszy w lewo, aby ustawić rozmiar), a następnie kliknij prawym przyciskiem myszy przycisk => przypisz makro => wybierz makro z listy
Z drugiej strony, oczywiście, makro musi znajdować się w języku Visual Basic przed
Aby wyświetlić zakładkę programisty (jeśli jej nie masz), musisz przejść do plik => opcje => Dostosuj wstążkę => Kliknij pole "programista" w "głównych zakładkach", jeśli tego nie zrobisz
Nie mówię tego w pliku, bo uważam, że lepiej trochę pomęczyć się i nauczyć niż mieć rozwiązanie pod klucz ;)
Edit: będziesz ostrożny, zostawiasz dużo informacji w swoich plikach między tym pytaniem a poprzednim. Znajdują się tam imiona i nazwiska współpracowników lub pełna lista części Twojej firmy. Radzę edytować swoje wiadomości i je usuwać/modyfikować.
W rzeczywistości pliki xlsX nie akceptują makr: są one usuwane po zamknięciu!
Albo musisz zarejestrować się pod xlsM. lub zapisz w .XLS (stara wersja 97).
Dziękuję .PL, dlatego to nie działa.
U mnie to działa dobrze
Dwie uwagi jednak:
-> Piszesz w ostatniej linii (ref 20244). A nie na ostatniej + 1 linijce Mała linijka modyfikacji do zrobienia jak dla mojego 2 makro
-> Osiągnąłeś granice VBA: jeśli to nie działa, to dlatego, że nie zapisałeś nazwy użytkownika DOKŁADNIE tak, jak została wprowadzona w maszynie. To jest to, co powiedziałem na samym początku pytania: będzie to nieustanne źródło błędów, gdy tylko pojawi się nowy użytkownik.
Dlatego radzę zrobić małe makro do zrobienia z każdym użytkownikiem na podstawie:
Sub DefName ()
Nazwa = Aplikacja.NazwaUżytkownika
ActiveCell = Nazwa
Koniec subwoofera
Musisz tylko zaznaczyć pole, w którym chcesz umieścić nazwę, uruchomić makro i gotowe, jest wypełnione poprawnie. Do zrobienia dla każdej z obecnych osób
To dobry pomysł. Zamierzam spróbować
Dsl Nie mogę sprawić, by makra w ogóle działały. Myślę, że się poddamy.
W każdym razie bardzo dziękuję
Umieszczam makra na przycisku
Albo makro .PL, albo moje.
Aby zobaczyć różnicę między tymi dwoma, radzę kliknąć najpierw na moje, a NASTĘPNIE na .PL (w przeciwnym razie efekt jest niwelowany przez makro Lucasa)
W przypadku przycisku ustaw użytkownika nie zapomnij wcześniej kliknąć odpowiedniej komórki
Baw się dobrze :)
Dziękuję bardzo. Jest idealny^^