remplir un userform à partir de ligne dans excel

aeryne

XLDnaute Junior
Bonjour
Je possède un fichier excel et j'aimerai pouvoir remplir des textbox et combobox à partir du fichier.
chaque ligne correspond à un numero de dossier différent et j'aimerai si je choisi un numero de dossier que les informations que je possède sur ce fichier remplissent le userform pour moi pouvoir ensuite modifier les données si elles sont erronées et les renvoyer de nouveau dans le tableau écraser les anciennes données.
Sachant que le tableau est incrémenté régulièrement il dépassera les 1000 lignes sans souci et il possede 65 colonnes.
d'ou le désire de visualiser certaines informations de facon plus pratique.
les numeros de dossier se situent colonne C et mes données commencent colonne B et ligne 2.

voici 2 ébauches différentes par rapport à ce que j'ai trouvé sur le net mais aucunes ne marchent.
Code:
'Private D As Object 'déclare la variable D (onglet Données)
'Private LI As Integer 'déclare la variable LI (Ligne)



'Private Sub UserForm3_Initialize() 'à l'initialisation de l'userForm


'Dim DL As Integer 'décalre la variable DL (Dernière Ligne)
'Dim PL As Range 'déclare la variable PL (PLage)

'Set D = Sheets("AVP") 'définit l'onglet D
'DL = D.Cells(Application.Rows.Count, 3).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne 1 (=A) de l'onglet D
'Set PL = D.Range("C2:C" & DL) 'définit la plage PL
'Select Case DL 'agit en fonction de la valeur de la dernière Ligne DL
'    Case 2 'cas 2
'        MsgBox "La base de données est vide": End 'message, stoppe toue exécution de code
'    Case 3 'cas 3'alimente la ComboBox1 avec la valeur de la cellule A3
'        Me.ComboBox1.AddItem (D.Range("C2").Value)
'    Case Else 'tous les autres cas
'        Me.ComboBox1.List = PL.Value 'alimente la ComboBox1 avec les valeur de la plage PL
'End Select 'fin de l'action en fonction de...
'End Sub

Private Sub textbox23_Change() 'au changement dans la CombobOx1


'le premier élément d'une Combobox a 0 comme valeur de la prorpiété [ListIndex], le second 1, le troisième 2, etc.
'si il n'y a pas de doublons, (ListIndex + 3) renvoie le numéro de la ligne d l'élément sélectionné
'LI = Me.ComboBox28.ListIndex + 2 'récupère le numéro de ligne de l'élément sélectionné

'rechercher les différentes valeurs saisies dans la base de données
'Me.TextBox1 = D.Cells(LI, 2)
'Me.TextBox3 = D.Cells(LI, 4)
'Me.ComboBox7 = D.Cells(LI, 5)
'Me.ComboBox5 = D.Cells(LI, 8)
'Me.TextBox20 = D.Cells(LI, 17)
'Me.TextBox21 = D.Cells(LI, 19)
'Me.TextBox22 = D.Cells(LI, 20)
'Me.ComboBox7 = D.Cells(LI, 21)
'Me.TextBox18 = D.Cells(LI, 56)
'Me.TextBox19 = D.Cells(LI, 57)
'Me.ComboBox1 = D.Cells(LI, 58)
'Me.ComboBox12 = D.Cells(LI, 59)
'Me.ComboBox13 = D.Cells(LI, 60)
'Me.ComboBox3 = D.Cells(LI, 61)
'Me.ComboBox9 = D.Cells(LI, 62)
'Me.ComboBox4 = D.Cells(LI, 63)

'End Sub


Code:
'Sub UserForm3_activate()
Cells.Find(what:="textbox23.value", after:=ActiveCell, LookIn:=xlFormulas, lookat:=xlPart, searchorder:=xlByRows, searchdirection:=xlNext, MatchCase:=False, searchformat:=False).Activate
TextBox23.Value = Range(ActiveCell).Value
ActiveCell.Offset(0, -1).Select

TextBox1.Value = Range(cell).Value


End Sub

j'ai mi un petit morceau du fichier car il était beaucoup trop important.
j'espère que j'ai été claire dans mes explications et merci d'avance de votre aide ou de vos explications.
 

aeryne

XLDnaute Junior
Re : remplir un userform à partir de ligne dans excel

est ce qu'il est possible de transformer la combobox en zone combinée ou en cellule avec liste déroulante?

ou de tout placer dans un userform (formulaire) car après modification du bouton ça marche encore (en tout cas pour le moment lol)
 
Dernière édition:

aeryne

XLDnaute Junior
Re : remplir un userform à partir de ligne dans excel

arf j'ai une réunion lundi ou je dois présenter le fichier à mon chef.
pour le moment je peux remplir le tableau avec un userform (même si bizarrement des trucs bug alors qu'avant y avait aucun soucis) et publier les résultats en publipostage.
il manque juste la partie pour compléter une ligne précise et sauvegarder la ligne.
est ce que ton code marcherait si je le colle dans un userform?
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : remplir un userform à partir de ligne dans excel

Re,

arf j'ai une réunion lundi ou je dois présenter le fichier à mon chef.
pour le moment je peux remplir le tableau avec un userform (même si bizarrement des trucs bug alors qu'avant y avait aucun soucis) et publier les résultats en publipostage.
il manque juste la partie pour compléter une ligne précise et sauvegarder la ligne.
est ce que ton code marcherait si je le colle dans un userform?

Je ne crois pas. Ta date limite tombe mal :(

Peut-être que samedi ou dimanche, je pourrai y consacrer quelques moments mais ce sera en alors en Excel 2003. Je ne promets rien...
 

aeryne

XLDnaute Junior
Re : remplir un userform à partir de ligne dans excel

en tout cas merci de ton aide.
je vais essayer tout de même de télécharger ton fichier directement du travail on sait jamais puisqu'il marche chez toi sans soucis, c'est peut être en passant chez moi que ça le bloque (ce serait tellement merveilleux ;) )
lorsque je me suis rendu compte que le fichier avait des soucis c'était cette semaine (les bouton ne lançait plus le formulaire) une collègue qui bosse aussi sur le fichier avait une copie qui a quelques semaines et qui elle a fonctionnait sans souci au travail. D’où mon espoir. mais dans ce cas ci je vais avoir des soucis pour continuer à travailler dessus lol.
car tout taper le code chez moi, l'imprimer puis tout retaper ensuite au boulot ca va pas être facile.

peux tu m'expliquer comment toi tu as fait ton formulaire?
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : remplir un userform à partir de ligne dans excel

re

Ce sera mon dernier message aujourd'hui, aeryne. Je suis désolé :( mais j'ai encore pas mal de chose à faire ce soir. Je ne pourrai pas consulter le site avant samedi. Je vais essayer de dégager un peu de temps samedi pour l'adapter. Et s'il marche en 2003, il devrait fonctionner aussi en 2010. Mes fichiers sur une clef USB et c'est parti.

Juste une question, les formes (shapes) fonctionnent elles sur ton Excel ?

A+
 

Staple1600

XLDnaute Barbatruc
Re : remplir un userform à partir de ligne dans excel

Bonsoir à tous

oui c'est bien se post mais moi je ne peux pas faire cette manipulation au travail
Cette manip que j'ai posté (dans le fil cité part mapomme (que je salue au passage)) peut tout à fait être fait au boulot sans aucun risque.
(sauf si évidemment tu n'as pas accès au répertoire %temp%, ce qui est assez rare quand même)
http://www.excel-downloads.com/forum/226855-controle-activex-ne-fonctionne-plus-depuis-mise-jour-windows-post1442148.html#post1442148



NB: La seul fichier joint dans ce fil est celui de mapomme, il manque donc (comme l'a déjà signalé mapomme), un fichier exemple créé par le demandeur .
Cela permettrai surement d'y voir plus clair quand aux bugs constatés par aeryne.




 
Dernière édition:

aeryne

XLDnaute Junior
Re : remplir un userform à partir de ligne dans excel

Je ne sais pas ce que tu appelles les formes désolée
J'ai mon userform qui fonction avec un bouton de formulaire qui remplace le bouton activex
J'ai remarqué que parfois lorsque je sélectionne un fichier dans mon code avec activate il arrête de fonctionner alors que je n'avais aucun bug y a 15 jours.
Mon formulaire rempli 3 fichiers Excel différents en même temps, les ouvrent et fait une sauvegarde après utilisation.

Je n'ai pas de droit administreur donc je ne peux pas supprimer ou installer d'élément (même une icône sur le bureaux je peux pas la supprimer)
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : remplir un userform à partir de ligne dans excel

Re

aeryne
Voici ce que sont les formes (shapes)
Ce lien n'existe plus

PS: Il s'agit juste de supprimer des fichiers temporaires avec l'extension *.EXD
Tu as cliqué sur le lien de mon précédent message ?
Quand tu crées un fichier Excel, tu peux le supprimer, non ?
Tu peux aussi vider la Corbeille ?
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : remplir un userform à partir de ligne dans excel

Re

Euh j'ai zappé quoi?
Rien puisque j'ai édité mon message après l'édition du tien. ;)

Les formes (ou shapes) aussi appelées formes automatiques (les Rectangle, les élipses etc..)
Tu as cliqué sur le lien de mon précédent message ?

Sinon, pour la suppression de *.EXD, tu peux essayer cette macro
(Je l'ai testé sur une session Windows non administrateur et cela a fonctionné.)
Code:
Sub SUPPR_EXD()
Dim objFSO, objShell, strPath$
Set objShell = CreateObject("Wscript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
strPath = objFSO.GetSpecialFolder(2) & "\"
objShell.Run "cmd /c del """ & strPath & "\*.exd"" /s", 0, True
End Sub
Ensuite tu fermes Excel, puis tu ré-ouvres le fichier problématique.

Tu nous diras si les problèmes persistent ou pas.
 

aeryne

XLDnaute Junior
Re : remplir un userform à partir de ligne dans excel

J'avoue j'ai rien compris a ton lien lol
Je fais que des boutons donc je ne peux pas te répondre je savais même pas que l'on pouvait faire ça lol

Je mettrais ce code dans le fichier Excel de mon formulaire et je verrai. Si ça pouvais être aussi simple lol
 

aeryne

XLDnaute Junior
Re : remplir un userform à partir de ligne dans excel

ça a marché :)

et pour l'erreur 400 j'ai trouvé pourquoi elle existe: une partie des colonnes est protégée je ne peux pas y écrire.
y a t'il un moyen pour que je n’écrire que sur certaine colonne et pas d'autre du style de 2 à 8, de 23 à 41 et de 47 à 73?
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : remplir un userform à partir de ligne dans excel

Bonjour aeryne,

ça a marché :)

et pour l'erreur 400 j'ai trouvé pourquoi elle existe: une partie des colonnes est protégée je ne peux pas y écrire.
y a t'il un moyen pour que je n’écrire que sur certaine colonne et pas d'autre du style de 2 à 8, de 23 à 41 et de 47 à 73?
je vois que ça avance...:).

Utilises tu ma version ou bien la tienne avec Userform ?

Pour le formulaire, toutes les cellules de la feuille sont verrouillées sauf les cellules que l'on peut modifier.
Dans mon exemple, sont déverrouillées (format cellule, onglet protection, décocher Verrouillée) toutes les cellules à droite des intitulés. La cellule à gauche de Dossier est verrouillée car je veux empêcher la modification de la référence du dossier.

Si on ne veut pas modifier certains champs, il suffit de verrouiller les cellules correspondant à ces champs. Ils ne seront plus sélectionnables. En gros, seuls les cellules devant être modifiées doivent avoir un format de cellule "Déverrouillé". Les autres doivent être verrouillées.

Pour le fonctionnement, on notera que les cellules des champs sont nommées dans l'ordre des champs de la feuille "Fournisseur" : Elem1, Elem2, Elem3, etc...

A+

nota : je persiste à penser qu'avec le fichier original (expurgé des données confidentielles), nous progresserions beaucoup plus vite.
 

aeryne

XLDnaute Junior
Re : remplir un userform à partir de ligne dans excel

re salut
j'ai pas mal bossé sur mon fichier et une question persiste: pourquoi je ne peux pas envoyer des données par le formulaire sur une feuilles dont des cellules sont protégées même si je n'envoie rien dans ces colonnes bloquées?
les colonnes sont protégées dans mon tableau car il s'agit de formule qui me servent pour utiliser ensuite le publipostage et je bloque ces formules pour éviter des mauvaises manipulations des mes collègues un peu curieux mais qui n'y connaissent pas grand chose en informatique

edit: en fait il y a des colonnes en plein milieu j'avais pas fait attention qui sont bloquées: ce sont les colonnes L M O Q R S U et maintenant mon tableau va jusqu'en AZ. Ensuite ce sont des colonnes protégées.
 
Dernière édition:

Discussions similaires

Réponses
17
Affichages
249
Réponses
5
Affichages
365