Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
1593 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  VBA : adapter un userform à plusieurs feuilles

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

VBA : adapter un userform à plusieurs feuilles

n°2305842
Udufru
Posté le 19-09-2017 à 23:33:55  profilanswer
 

Bonjour à tous,
 
Je suis débutante en VBA, j'ai commencé ce week-end en reprenant un formulaire réalisé par une ancienne collègue pour le faire évoluer.
 
Voilà mon problème : j'ai un fichier Excel utilisé par 20 collaborateurs. Je souhaiterais qu'ils aient chacun une feuille à leur nom, qu'ils utilisent tous le même userform accessible via un bouton présent sur leur feuille attitrée, et que les données saisies par chacun soient enregistrées sur la feuille correspondante.
A l'heure actuelle, mon fichier fonctionne parfaitement pour la feuille1, mais dès que je duplique cette feuille, évidemment tout se gâte puisque l'userform est paramétré pour remplir la feuille1 et non la feuille2.
 
J'ai trouvé le forum suivant, répondant à la même problématique : http://forum.hardware.fr/hfr/Progr [...] 4469_1.htm.
 
Du coup, j'ai testé la solution proposée pour une de mes textbox, et ça fonctionne ! A savoir :
 
Private Sub UserForm_Initialize()
TextBox2 = Sheets(ActiveSheet.Name).Cells(5, 2)
End Sub
 
Private Sub TextBox2_Change()
Sheets(ActiveSheet.Name).Cells(5, 2) = TextBox2
End Sub

 
Super, sauf que c'est hélas loin d'être suffisant !
 
1. Que dois-je faire pour toutes les autres textbox et listbox ?? Il n'est pas possible de faire plusieurs UserForm_Initialize. Si j'essaie de mettre autre chose dans UserForm_Initialize (comme par exemple : TextBox3 = Sheets(ActiveSheet.Name).Cells(5, 4)), le formulaire ne se lance plus. Et si je mets d'autres Private Sub TextBox_Change(), le formulaire se lance mais débloque complètement (change les formats de données, ne tient pas compte des données saisies, etc.). Comment faire en sorte que toutes mes données soient récupérées sur la feuille active ?
 
2. Comme dans le post lié ci-dessus, mon userform activé depuis la feuille2 ne se vide pas après emploi (alors qu'il le fait parfaitement sur la feuille 1). Lorsque je le ferme, il conserve un reliquat de données sur la feuille1, alors même que j'avais utilisé la feuille2. Est-ce que cela vient des codes de ma collègue sur les Commandbutton, que je n'ose pas trop toucher ?
 
Pouvez-vous regarder mon fichier et m'expliquer ce qui cloche afin que je puisse le corriger ? En sachant que je n'ai que jusqu'au 28 septembre pour déployer ce nouveau fichier, et que je suis une débutante... alors je vous remercie d'avance pour des explications simples et détaillées, parce que cela fait 4 jours que je m'arrache les cheveux sur des forums d'experts qui sont bien trop complexes pour mon piètre niveau.
 
MERCI MILLE FOIS D'AVANCE

mood
Publicité
Posté le 19-09-2017 à 23:33:55  profilanswer
 

n°2305951
master1551
Posté le 21-09-2017 à 20:56:57  profilanswer
 

Bonjour,
 
Moi j'aurai mis déjà essayé un truc comme ça :
 
Private Sub UserForm_Initialize()
TextBox2.Text = ActiveSheet.Cells(5, 2).Value
End Sub
 
Private Sub TextBox2_Change()
ActiveSheet.Cells(5, 2) = TextBox2.Text
End Sub
 
Private Sub CommandButton1_Click()
Date_jour
With ActiveSheet
    .Range("A5" ) = "AOUCHICHE Farida"
    .Rows(5).Copy
    .Rows(6).Insert Shift:=xlDown
    .Rows(5).ClearContents
End With
         
ActiveWorkbook.Save
Unload Me
UserForm1.Show
 
End Sub
 
Sub Date_jour()
    ActiveSheet.Range("C5" ) = ActiveSheet.Range("E2" ).Value
End Sub
 
Petite question tu veux toujours le plus récent en début de liste ??


Message édité par master1551 le 21-09-2017 à 21:01:10

---------------
https://500px.com/3enzam1n
n°2305962
Udufru
Posté le 22-09-2017 à 08:49:42  profilanswer
 

Déjà merci pour ta réponse, je commençais à désespérer et ma chef me mets une pression d'enfer.
Je vais regarder ce que tu proposes ce week-end !
 
Le code du bouton Enregistrer vient de ma précédente collègue, je n'y ai pas retouché pour l'instant car c'est plutôt pratique d'avoir les derniers dossiers saisis en début de liste, mais si cela cause problème, je ne vois aucun inconvénient à enregistrer toujours sur la dernière ligne non vide. Pourquoi ? Cela pourrait corriger le problème de partage lorsque plusieurs utilisateurs enregistrent en même temps ?

n°2305965
Marc L
Posté le 22-09-2017 à 10:04:09  profilanswer
 

 
            Bonjour,
 
            vite fait en passant :
 
            Sheets(ActiveSheet.Name)  est vraiment inutile car cela correspond juste à  ActiveSheet  ‼
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  VBA : adapter un userform à plusieurs feuilles

 

Sujets relatifs
VBA copier une valeur d'un tableau acces vers un autre sous conditionVBA word supprimer lignes en doubles
VBA BO afficher le gestionnaire de rapportExecuter du code VBA sur un outil web
[RESOLU] VBA - Tag d'1 var bidimensionnelle sur 1 librairie SharePointCommande Batch avec reponse à plusieurs mots
VBA Excel Requète WEBProblème MFC en VBA (erreur -2147417848 (80010108) )
Fermer workbook ouvert depuis une macro dans userform 
Plus de sujets relatifs à : VBA : adapter un userform à plusieurs feuilles



Copyright © 1997-2016 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR