modifier une cellule en modifiant la bonne ligne

altinea

XLDnaute Accro
Bonsoir le forum,
Je sollicite votre aide afin de résoudre mon petit soucis.
Voilà vous trouverez en fichier joint un petit exemple de ce que je souhaiterai réaliser.
1 userform
1 combobox et 2 textbox, en fonction de la sélection de la combobox s'affichent dans les deux textbox ce ui figure dans les colonnes adjacentes de la colonne 1.
La texbox 3 elle je souhaiterai pouvoir entrer la valeur de mon choix, le seul inconvénient c'est que cela me modifie la ligne choisie.
je suis sous 2010 mais le fichier je lai enrgistré en version 2003 afin qu'il soit exploitable par le plus grand nombre
Merci pour votre aide
 

Pièces jointes

  • alti.xls
    50.5 KB · Affichages: 181
  • alti.xls
    50.5 KB · Affichages: 187
  • alti.xls
    50.5 KB · Affichages: 181

altinea

XLDnaute Accro
Re : modifier une cellule en modifiant la bonne ligne

re bonsoir le forum, le fil
laetitia90, j'ai remarqué que lorsque ej supprime les doublons il s'agit des doublons de la première colonne et il me supprime toutes les lignes, par contre je souhaiterai qu'il vérifie la ligne et si seulement toute la ligne est en doublon elle soit supprimée
en fait il s'agit de la ligne entière en doublon et non pas la colonne A, car là il me supprime trop d’éléments, merci pour votre aide encore une fois
 

laetitia90

XLDnaute Barbatruc
Re : modifier une cellule en modifiant la bonne ligne

re,
si tu utilise excel 2007 ou 2010
tu selectionne ta plage tu fais données puis supprimer les doublons une fenetre apparait par defaut toutes les colonnes sont selectionner tu fais selectionner tout.... puis ok les lignes en double supprimer c'est tout !!!
 

altinea

XLDnaute Accro
Re : modifier une cellule en modifiant la bonne ligne

bonsoir, merci effectivement je connais le principe sur 2010, par contre c'est pour mettre au service de plusieurs utilisateurs qui ne maitrise pas excel, encore moins que moi lol, donc le but était de faire une macro, qui me permette d'dentifier les doublon de les supprimer en les copiant sur une autre feuille et en supprimant les lignes vides de la feuilles ou il y avait les doublons, voila
merci
 

laetitia90

XLDnaute Barbatruc
Re : modifier une cellule en modifiant la bonne ligne

re,change le code dans ton bouton

suppose 6 colonnes utiliser??? comme dans ton exemple autrement il faut adapter... pas trop optimiser mais bon!!

Code:
 Dim m As Object, i As Long, z As Variant
 On Error Resume Next
 Application.ScreenUpdating = False
 Set m = CreateObject("Scripting.Dictionary")
 For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
 z = Cells(i, 1) & Cells(i, 2) & Cells(i, 3) & Cells(i, 4) & Cells(i, 5) & Cells(i, 6)
 If Not m.Exists(z) Then
 m.Add z, z
 Else
 Cells(i, 1).Resize(1, 6).Cut Destination:=Sheets("Doublons").Cells(Rows.Count, 1).End(xlUp)(2)
 End If
 Next i
Range("a2:a" & Cells(Rows.Count, 1).End(xlUp).Row).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
 

altinea

XLDnaute Accro
Re : modifier une cellule en modifiant la bonne ligne

bonsoir le forum, le fil, merci Laetitia90, cela fonctionne, merci j'ai adapté sur mon projet professionnel et ça me conviens.
Je souhaiterai également te demander une modification sur la premiere demande, je joins le fichier afin que cela soit plus clair.
Merci de ton aide,
 

Pièces jointes

  • alti-5.xls
    58 KB · Affichages: 62

laetitia90

XLDnaute Barbatruc
Re : modifier une cellule en modifiant la bonne ligne

re,
j'ai rajoute un bouton "ajout" comme cela tu peus uniquement changer la textbox prix les autres textboxs sont bloquées pour eviter les erreur... tu utilise des textboxs renommées plus long pour coder enfin.. pour simplifier cela j'utilise tag des proprietées des controls concernées plus simple le code
 

Pièces jointes

  • alti-6.xls
    55 KB · Affichages: 54

altinea

XLDnaute Accro
Re : modifier une cellule en modifiant la bonne ligne

Merci laetitia90, je vais mettre en application ton travail, j'espere etre capable de l' adapter a mon projet, je te remercie, j'espère que si je te re sollicite cela ne te dérangera pas? je vais essayer ce soir
Merci
 

laetitia90

XLDnaute Barbatruc
Re : modifier une cellule en modifiant la bonne ligne

re,:):):)
cela ne me gene pas du tout:)

dans l'exemple il faut bien comprendre tag
dans proprietés du controle tag du combo =0 les textboxs de 1 a 5
donc je boucle sur les controles dont tag est different de nothing
Code:
Private Sub Cb_marque_Click()
 For Each c In Controls
 If c.Tag <> "" Then Controls(c.Name).Value = Cb_marque.List(Cb_marque.ListIndex, c.Tag):beep
 Next
End Sub
c.tag par de 0 a 5 autant prendre en compte la combo on va l'utiliser par la suite .. quoique le beep autant le mettre sur ajout
pour ajout c'est pareil

Private Sub ajout_Click()
y = Feuil3.Cells.Find("*", , , , xlByRows, xlPrevious).Row + 1
For Each c In Controls
If c.Tag <> "" Then Feuil3.Cells(y, c.Tag + 1) = Controls(c.Name).Value
Next
End Sub
premiere ligne simple y= la premiere ligne vide de la feuille3

Cells(y, c.Tag + 1)
oblige de dire plus 1 autrement erreur on peut pas ecrire avant colonne a
c.tag=1 pour la premiere boucle =cells(y,1)
au 2 passage de la boucle
cells(y,2)
ect...
 

altinea

XLDnaute Accro
Re : modifier une cellule en modifiant la bonne ligne

bonsoir , merci Laetitia90, j'avoue que l'ensemble des éléments que tu m'as apporté m'ont permis de voir qu'il est possible de faire encore plus simple ans le code, par contre cela nécessite des connaissances plus poussées dans VBA, malheureusement j'ai du mal a intégrer tout cela c'est pour ça que je sollicite régulièrement, j'essaye de me débrouiller et d'adapter.
Encore merci
Je vais tenter d'adapter, les infos que tu m'as données sur mon fichier, si cela t'intéresse je peux te faire parvenir mon fichier et tu pourrai me dire les parties à améliorer.
Bonne soirée
 

altinea

XLDnaute Accro
Re : modifier une cellule en modifiant la bonne ligne

re Laetitia90;
voilà avec ton code j'ai bien compris le principe TAG,
effectivement cela réduit considérablement les lignes de code.
dans le code j'ai modifié afin que cela soit en accord avec mon fichier :

Dim t As Variant, y As Long, c As Control
Private Sub UserForm1_Initialize()
t = Formations.Range("a3:j" & Formations.Cells(Rows.Count, 1).End(xlUp).Row): Cb_marque.List = t
End Sub

si j'ai bien compris sur le code ci dessus, il détermine la zone liste où il va chercher les infos pour la combo box, et bien quand ke lance l'usf rien n'apparait


Private Sub Cb_marque_Click()
For Each c In Controls
If c.Tag <> "" Then Controls(c.Name).Value = Cb_marque.List(Cb_marque.ListIndex, c.Tag): Beep
Next
End Sub
Private Sub ajout_Click()
y = Prévision.Cells.Find("*", , , , xlByRows, xlPrevious).Row + 1
For Each c In Controls
If c.Tag <> "" Then Prévision.Cells(y, c.Tag + 1) = Controls(c.Name).Value
Next
End Sub
Private Sub CommandButton1_Click()
Unload Me
End Sub


Je joins le fichier allégé sur lequel je travaille se sera plus parlant que d'essayer de transposer les informations que tu me donne, je comprendrai mieux car plus adapté à ce que je fait.

Dans le projet il y a un usf appelé userform1 dans lequel j'ai voulu adapter ton code, il ne me sert pas dans le projet. Juste pour tester .
Merci encore de ta compréhension et de ton aide
 

Pièces jointes

  • alti-7.xls
    688 KB · Affichages: 62
  • alti-7.xls
    688 KB · Affichages: 63
  • alti-7.xls
    688 KB · Affichages: 72

altinea

XLDnaute Accro
Re : modifier une cellule en modifiant la bonne ligne

Le forum, le fil, Laetitia90, encore moi, je joins le fichier avec plus d'explications afin que tu vois mieux mes zones d'ombre, merci encore
 

Pièces jointes

  • alti-7.xls
    701.5 KB · Affichages: 66
  • alti-7.xls
    701.5 KB · Affichages: 69
  • alti-7.xls
    701.5 KB · Affichages: 63

laetitia90

XLDnaute Barbatruc
Re : modifier une cellule en modifiant la bonne ligne

re, ):)
je viens de voir ton message qui correspond a ton last post
comme je comprends c'est pour les feuilles
SAISIE DES FORMATIONS PROGRAMMEES & Saisie_des_Formations_Réalisées

le peu que je vois tu as pas definis dans chaque controls tag c'est vide ??
c'est important dans vba d'activer la fenetre proprietées comme cela on voit tout quand tu selectionne un controls

Code:
[CODE]Private Sub UserForm_Initialize()
 t = Formations.Range("a3:j" & Formations.Cells(Rows.Count, 1).End(xlUp).Row): Cb_Boform.List = t
End Sub
[/CODE]
il vaut mieux appel sheet par sa proprietees name evite pas mal de pb... sheet renommé ect..

week -end oblige regarderais lundi
 
Dernière édition:

altinea

XLDnaute Accro
Re : modifier une cellule en modifiant la bonne ligne

Ok merci Laetitia90, je vais essayer d'avancer aussi, par contre dans les usf formation programmée et réalisée je n'avais rien mis juste dans l'usf1 ou javais essayé de reproduire tes infos, je vais poursuivre et essayer aussi de comprendre, en attendant merci bon week end et à lundi
 

altinea

XLDnaute Accro
Re : modifier une cellule en modifiant la bonne ligne

Bonjour, le forum, le fil, Laetitia90, j'ai pris en compte pas mal d'informations. J'ai refondu le fichier. Il doit être plus léger.
Il ne me manques plus que pour tes conseils, pour finaliser. Les infos relatives aux points à voir sont sur la feuil1 du fichier.
Merci encore pour ton aide.
Bonne reprise
 

Pièces jointes

  • alti-8.xls
    463.5 KB · Affichages: 64
  • alti-8.xls
    463.5 KB · Affichages: 54
  • alti-8.xls
    463.5 KB · Affichages: 64

Discussions similaires

Réponses
1
Affichages
78
Compte Supprimé 979
C

Statistiques des forums

Discussions
311 735
Messages
2 082 024
Membres
101 873
dernier inscrit
excellllll