Récupérer des données d'une liste, les porter en feuil1 sans qu'elles se reaffectent?

frango

XLDnaute Nouveau
Bonjour,
Je remercie Danreb pour tout l'aide qu'il m'a déjà apporté.
Il me reste à récupérer les données nom, prénom (au moins, sinon toutes les autres) de la liste feuil2 "adresses globales" pour les affecter à la feuil1 "inscription" sans que cela génère la même entrée dans la liste feuil1.
Je vous remercie de votre aide.
Très cordialement
Frango
 

Pièces jointes

  • DicArbFrango.xls
    164 KB · Affichages: 58
  • DicArbFrango.xls
    164 KB · Affichages: 54
  • DicArbFrango.xls
    164 KB · Affichages: 55

Dranreb

XLDnaute Barbatruc
Re : Récupérer des données d'une liste, les porter en feuil1 sans qu'elles se reaffec

Utilisation incorrecte de Null
Oui c'est corrigé dans le dernier classeur joint à 17h 37

Ah bon. J'avais cru qu'il y avait peut être un lien dans la mesure où tant qu'il n'avait pas payé, il n'aurait pas le droit d'y participer réellement ! Si c'est un don variable et quasi facultatif, évidemment, et non un état (payé ou non), faut-il en retirer la surveillance dans l'Uf ? On pourrait quand même en prévoir la saisie dans un TextBox, pour que tout puisse se faire dans l'Userform.

Pour continuer sur les raccourcis de commande, La touche Entrée revient à actionner le bouton Inscrire s'il est actionnable, sinon Modifier.
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Récupérer des données d'une liste, les porter en feuil1 sans qu'elles se reaffec

Si, mais c'est un édit du poste #14
On met un TextBox de saisie de la somme à la place ?
Ne devrait on pas cumuler les sommes versées dans la liste d'adresses ?
 

frango

XLDnaute Nouveau
Re : Récupérer des données d'une liste, les porter en feuil1 sans qu'elles se reaffec

oui, maintenant on est dans le luxe...mais luxe pour luxe on peut aussi sauvegarder la feuille entière avec la date du concours sur une autre feuille , opération qui remet à zéro toute cette feuille pour enregistrer avec une nouvelle date le concours suivant...
La somme doit se faire en fin de colonne de "réglé" dans la fiche inscription ! Une somme col suffit et ça je peux le faire...
Je ne sais pas comment vous manifester ma reconnaissance et mon admiration !
Frango
 

Dranreb

XLDnaute Barbatruc
Re : Récupérer des données d'une liste, les porter en feuil1 sans qu'elles se reaffec

Je propose cette réécriture d'une procédure du module Applicatif :
VB:
Sub EffacerListeInscrits()
Dim Feuil As Worksheet
If MsgBox("Souhaitez vous archiver la feuille ?", vbYesNo + vbQuestion, "Effacer liste d'inscription") = vbYes Then
   Set Feuil = Worksheets.Add(After:=FAdress)
   FInscrip.Cells.Copy Destination:=Feuil.[A1]
   Feuil.Name = Format(Feuil.[D2].Value, "mmm_yyyy")
   FInscrip.Activate: FInscrip.[D2].Select
   End If
FInscrip.[B7:K66].ClearContents
MàJPositionsInscriptions
End Sub
Veillez à ce que les boutons de formulaire aient comme propriété "Ne pas déplacer ou dimensionner avec les cellules"
 
Dernière édition:

frango

XLDnaute Nouveau
Re : Récupérer des données d'une liste, les porter en feuil1 sans qu'elles se reaffec

Bonjour,
Je vois que vous travaillez très tard...moi c'est l'inverse, je me lève tôt !
Le module "Sub EffacerListInscrits ()" marche bien je l'ai testé par contre je n'arrive pas à corriger "utisation incorrectde Null" et comme je n'ai pas la version corrigée, pouvez-vous me la joindre ?
Peut-être avez eu le même pb que moi (pour le fichier de 17h 37) dans mon dernier envoi, il m'a fallu zipper le fichier qui dépassait 300 ko ...
Bonne journée
Cordialement
Frango
 

Dranreb

XLDnaute Barbatruc
Re : Récupérer des données d'une liste, les porter en feuil1 sans qu'elles se reaffec

Bonjour

Voici le classeur actuel. J'ai quand même vérifié par acquis de conscience, le classeur joint au poste #14 lors de la dernière modification de 17h 37, après que vous eussiez récupéré sa version initiale de 17h 17, ne comporte déjà plus le bogue.
 

Pièces jointes

  • CbxLiésFrango.xls
    351 KB · Affichages: 28
  • CbxLiésFrango.xls
    351 KB · Affichages: 30
  • CbxLiésFrango.xls
    351 KB · Affichages: 33

frango

XLDnaute Nouveau
Re : Récupérer des données d'une liste, les porter en feuil1 sans qu'elles se reaffec

Bonjour,
Je vous renvois le fichier dans l'état :
J'ai voulu supprimer les inscriptions pour tout reprendre mais arrivé à XXXX, le pb se repose et je ne peux pas le supprimer !
Par ailleurs pouvez-vous inclure le jour dans le nom de feuille sauvegardée ?
Frango
 

Pièces jointes

  • Copie 4 de CbxLiésFrango.zip
    126.7 KB · Affichages: 18

Dranreb

XLDnaute Barbatruc
Re : Récupérer des données d'une liste, les porter en feuil1 sans qu'elles se reaffec

Il ne faut jamais laisser moins de 2 lignes dans un tableau. S'il y avait un nom dessus dans le classeur ça détruirait sa référence, même s'il restait encore une ligne, de telle sorte qu'on ne pourrait plus l'agrandir un insérant sa dernière ligne devant elle même, puisque ça décalerait cette ligne unique vers le bas. Et si vous supprimez toutes les lignes vous perdez les formats que vous auriez pu mettre sur les cellules. Quant à sa référence, si c'était dans un nom, elle se mettrait en #REF!. Faut il vraiment que j'ajoute une sécurité pour empêcher la destruction de la liste des adresses globales ? S'il n'en reste que 2 qui ne doivent plus y être, vous pouvez bien attendre avant de les supprimer d'en avoir deux bons, non ?

Et pour le nom de la feuille, ça ne vous est pas venu à l'idée ne mettre ça ? :
VB:
Feuil.Name = Format(Feuil.[D2].Value, "d_mmm_yyyy")
Il serait quand même temps d'essayer de comprendre comment ça marche tout ça pour être un peu capable d'intervenir dessus tout seul pour ce genre de détail, il me semble.
 
Dernière édition:

frango

XLDnaute Nouveau
Re : Récupérer des données d'une liste, les porter en feuil1 sans qu'elles se reaffec

Bonjour et merci de la leçon !
Il est vrai que j'étais dans la facilité !!!
Bon, je vais faire un effort et j'espère ne plus avoir besoin de faire appel à vous.
Encore merci de tout ce que vous avez fait.
Cordialement
Frango
 

Dranreb

XLDnaute Barbatruc
Re : Récupérer des données d'une liste, les porter en feuil1 sans qu'elles se reaffec

Bonjour.

En fait il y a sûrement encore des détails de mise au point que je dois revoir. Par exemple la désinscription. Je supprimais des bouts de lignes alors que je n'en ajoute jamais pour créer, et cela fait remonter la formule de total. Je propose de corriger comme ça :
VB:
Private Sub BtnDésinscrire_Click()
FInscrip.[B7:K7].Rows(ValLgn(1, 10)).Cut
FInscrip.[B67:K67].Insert
FInscrip.[B66:K66].ClearContents
ValLgn(1, 10) = Empty
MàJPositionsInscriptions
HabiliterBoutons
End Sub
Pour prévenir des apparitions de #REF!, la formule de total en K67 devient:
Code:
=SOMME(DECALER(K$6;1;0):DECALER(K67;-1;0))
Dans Applicatif LgnAdrNomPrén ne trouve pas si nom ou prénom vide. Ajouter 2 instructions devant :
VB:
Function LgnAdrNomPrén(ByVal Nom, ByVal Prénom) As Long
If Nom = "" Then Nom = CléVide
If Prénom = "" Then Prénom = CléVide
If DNom Is Nothing Then Set DNom = DictionnArbo(ColUti(FAdress.[A2:B2]))
If DNom.Exists(Nom) Then Set DPrénom = DNom(Nom): If DPrénom.Exists(Prénom) Then LgnAdrNomPrén = DPrénom(Prénom)(1)
End Function
Je me suis aperçu de ces problèmes en testant une nouvelle version ci après de la procédure de suppression, mais voir si elle s'impose vraiment. Elle comporte une sécurité pour empêcher de laisser moins de 2 lignes dans la liste, mais aussi de supprimer du premier coup quelqun qui n'y était pas clairement enregistré en tant que Non affilié, c'est à dire qui y est soit comme Affilié confirmé (CheckBox coché et valeur "ü" en police WingDings) soit Affilié provisoire (CheckBox grisé et affiliation non précisée)
VB:
Private Sub BtnSupprimer_Click()
Dim État As Byte
État = ÉtatCoché(Me.ChkAffilié)
If État > 0 Then
   MsgBox "Qu'il soit confirmé ou non, un affilié doit d'abord rétrogader." _
      & vbLf & "Suppression refusée. Modifiez ou annulez.", vbExclamation, Me.Caption & " - Supprimer"
   ÉtatCoché(Me.ChkAffilié) = État - 1
ElseIf CL.PlgTablo.Rows.Count <= 2 Then
   CL.PlgTablo.Rows(LAdr).Resize(, 8).ClearContents: ÉtatCoché(CL.PlgTablo.Cells(LAdr, 9)) = 0
   If IsEmpty(CL.PlgTablo.Cells(1, 1).Value) Then CL.PlgTablo.Cells(1, 2).Value = "Bidon 1"
   If IsEmpty(CL.PlgTablo.Cells(2, 1).Value) Then CL.PlgTablo.Cells(2, 2).Value = "Bidon 2"
   MsgBox "Il ne subsiste plus assez de lignes en """ & FAdress.Name & """" & vbLf _
      & "pour pouvoir en supprimer davantage sans saccager le tableau." & vbLf _
      & "Essayez un autre jour de supprimer les prénoms bidons.", vbInformation, Me.Caption & " - Supprimer"
Else
   CL.PlgTablo.Rows(LAdr).Delete: End If
If ValLgn(1, 10) > 0 Then BtnDésinscrire_Click
If État = 0 Then CL.Actualiser
HabiliterBoutons
End Sub
 

frango

XLDnaute Nouveau
Re : Récupérer des données d'une liste, les porter en feuil1 sans qu'elles se reaffec

Ok et merci de n'avoir pas rompu le contact !
Je n'ai pas eu le temps aujourd'hui de faire quoi que ce soit mais je m'y mettrais demain matin.
Cordialement
Frango
 

frango

XLDnaute Nouveau
Re : Récupérer des données d'une liste, les porter en feuil1 sans qu'elles se reaffec

Bonjour,
J'ai finalement fait toutes les modifications !
Tout à l'air de bien fonctionner...
J'ai plus de 150 inscriptions à faire pour ceux qui ont participé en 2012 et 2013, c'est une bonne façon de tester !
A bientôt
Cordialement
Frango
 

Discussions similaires

Statistiques des forums

Discussions
312 677
Messages
2 090 825
Membres
104 677
dernier inscrit
soufiane12