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 oups je n'avais pas vu ta réponse,

'####Permets de désactiver l'utilisation de la croix roouge####
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then Cancel = True: MsgBox " Pour fermer veuillez effectuer un nouveau choix"
End Sub


Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then Cancel = True: MsgBox "bouton"
End Sub

quelle différence entre le premier code et le second, quelle est la plus efficace??

merci
 

altinea

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

re, bonsoir Laetitia90, merci encore pour les infos, en fait je ne l'ai utilisé que pour l'user accueil pour les autres quand je ferme avec la croix cela reviens sur l'user accueil donc pas de prob de ce coté là.
Je pars à l'etranger demain quelques jours de repos, je pense que je continuerai malgré tout à bricoler sur excel, je te souhaite un bon week end et je te remercie encore une fois pour tous les efforts et toute la patience que tuas eu à mon égard.
Bonne soirée
 

laetitia90

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

bonjour tous :):)
normal calcul pas bon dans feuil 9

dans feuil 3 les listes ne sont reactualisées tu as du rentrer des données directement??? sans passer par l'user
eventuellement mettre ce code a l'activation de la feuille 9 cela devrait rentrer dans l'ordre & quand tu call user stat..

Code:
With Sheets("Feuil3")
   .Range("a3:t" & .Cells.Find("*", , , , , xlPrevious).Row).Sort _
   Key1:=.Range("a3"), Order1:=xlAscending, Header:=xlGuess
   .Range("k3:k" & .Cells(Rows.Count, "k").End(xlUp).Row).Name = "Service_réalisé"
   .Range("n3:n" & .Cells(Rows.Count, "n").End(xlUp).Row).Name = "heures_réalisé"
   .Range("s3:s" & .Cells(Rows.Count, "s").End(xlUp).Row).Name = "semaine_réalisé"
   .Range("q3:q" & .Cells(Rows.Count, "q").End(xlUp).Row).Name = "Choix_Année_Réalisée"
   .Range("p3:p" & .Cells(Rows.Count, "Q").End(xlUp).Row).Name = "Formateur_réalisé"
  End With
 

laetitia90

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

re tu mets la macro ci dessous dans un module puis tu la lances d'ou tu veus cela devrait reparer tes listes

Code:
Sub aa()
With Sheets("Feuil3")
   .Range("a3:t" & .Cells.Find("*", , , , , xlPrevious).Row).Sort _
   Key1:=.Range("a3"), Order1:=xlAscending, Header:=xlGuess
   .Range("k3:k" & .Cells(Rows.Count, "k").End(xlUp).Row).Name = "Service_réalisé"
   .Range("n3:n" & .Cells(Rows.Count, "n").End(xlUp).Row).Name = "heures_réalisé"
   .Range("s3:s" & .Cells(Rows.Count, "s").End(xlUp).Row).Name = "semaine_réalisé"
   .Range("q3:q" & .Cells(Rows.Count, "q").End(xlUp).Row).Name = "Choix_Année_Réalisée"
   .Range("p3:p" & .Cells(Rows.Count, "Q").End(xlUp).Row).Name = "Formateur_réalisé"
 End With
End Sub

les feuilles 3 & 5 doivent imperativement renseignées par l'user le code ci dessus est dans l'user quand tu valides
si tu renseignes directement normal que les liste ne soit pas reactualisées
 

laetitia90

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

re ,:)

tu pourrais faire qu'une macro pour simplifier en mettant aussi dans deactivate de la feuil 5
Code:
Sub aa()
With Sheets("Feuil3")
   .Range("a3:t" & .Cells.Find("*", , , , , xlPrevious).Row).Sort _
   Key1:=.Range("a3"), Order1:=xlAscending, Header:=xlGuess
   .Range("k3:k" & .Cells(Rows.Count, "k").End(xlUp).Row).Name = "Service_réalisé"
   .Range("n3:n" & .Cells(Rows.Count, "n").End(xlUp).Row).Name = "heures_réalisé"
   .Range("s3:s" & .Cells(Rows.Count, "s").End(xlUp).Row).Name = "semaine_réalisé"
   .Range("q3:q" & .Cells(Rows.Count, "q").End(xlUp).Row).Name = "Choix_Année_Réalisée"
   .Range("p3:p" & .Cells(Rows.Count, "Q").End(xlUp).Row).Name = "Formateur_réalisé"
 End With
 With Sheets("Feuil5")
    .Range("a3:t" & .Cells.Find("*", , , , , xlPrevious).Row).Sort _
    Key1:=.Range("l3"), Order1:=xlAscending, Header:=xlGuess
   .Range("k3:k" & .Cells(Rows.Count, "k").End(xlUp).Row).Name = "Service_prévision"
   .Range("n3:n" & .Cells(Rows.Count, "n").End(xlUp).Row).Name = "heures_prévision"
   .Range("s3:s" & .Cells(Rows.Count, "s").End(xlUp).Row).Name = "semaine_prévision"
   .Range("q3:q" & .Cells(Rows.Count, "q").End(xlUp).Row).Name = "Choix_Année_Prévision"
  End With
End Sub

mais bon complique pas mal cela impose de le mettre aussi a l'activation de l'user statistiques vu que l'on peut appeler aussi.... mais la on passe pas par la deactivation de la feuille

on complique tout quel est l'interet de passer par des users si on peut le faire directement
dans les 2 feuilles concernees avec tous les risque d'erreurs de frappe de noms qui sont pas dans la liste ect...

pour moi le plus simple
tu as donne la reponse

Merci à priori ça fonctionne, mais ej vais devoir verrouiller les accès aux feuilles aux utilisateurs certains doivent passer outre l'user
merci laetitia90

tu caches ces feuilles
attention tu les caches dans proprietees vba
2-xlSheetVeryHidden
 

altinea

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

re, merci pour l'info, ej vais donc procéder comme cela,
peux tu me dire ce qui ne fonctionne pas là :
Private Sub Impression_Click()
If Fiche = "" Then Exit Sub
With Feuil5
.Activate
.PageSetup.PrintArea = .Range(Fiche).Address
Me.Hide
.PrintOut
End With
Me.Show
End Sub

quand je clic sur l'user printzone, je chois, et il buggue sur .activate

merci encore
 

laetitia90

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

re ,
on peut pas activer ou selectionner une sheet non visible.. on peut quand même écrire dedans avec with...
par contre je me rappel plus d'ou tu le lances c'est user mais bon ???
Code:
Private Sub Impression_Click()
  If Fiche = "" Then Exit Sub
    With Feuil5
       .Visible = xlSheetVisible
      .Activate
       .PageSetup.PrintArea = .Range(Fiche).Address
       Me.Hide
       .PrintOut
    End With
  Me.Show
End Sub

idem apercu...

il faut penser quand tu fermes user

Code:
Private Sub Fermer_Click()
 Sheets("feuil5").Visible = xlSheetVeryHidden
 Unload Me
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then Cancel = 1
End Sub
 

Discussions similaires

Réponses
1
Affichages
78
Compte Supprimé 979
C

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof