Code VBA pour fichier création modification dans base de données

Re,

oups oui désolé pour le 1 et 2

il faut juste modifier dans l'usf1

Private Sub OptionButton3_Click()
' choix du sexe de l'enfant si 1 Masculin       CORRIGE
        If Me.OptionButton3.Value = True Then
            TxtSEXEoption.Value = "1"
            Me.OptionButton4.Value = False
    If Me.OptionButton3.Value = False Then
       TxtSEXEoption.Value = "1"
       Me.OptionButton3.Value = True
       Me.OptionButton4.Value = False
        End If
    End If
End Sub

Private Sub OptionButton4_Click()
' choix du sexe de l'enfant si 2 féminin   CORRIGE
        If Me.OptionButton4.Value = True Then
            TxtSEXEoption.Value = "2"
            Me.OptionButton3.Value = False
     If Me.OptionButton4.Value = False Then
        TxtSEXEoption.Value = "2"
        Me.OptionButton4.Value = True
        Me.OptionButton3.Value = False
         End If
    End If
End Sub

il me faudrait le nouveau classeur pour que je puisse rectifier, merci

Voici le fichier

20test003-lulu-004.xlsm (123.54 Ko)

Re,

merci rectifié féminin et masculin

Petite question : dans l'onglet paramètres, : [idée] le format et standard serait-il pas préférable de mettre en chiffre sans formule

cellule A1
U 14
200620072008
U 12formule =B1+3
2009
2010
U 1020112012
U 820132014
U 620152016
BABY20172018

ci joint la rectification

classeur supprimé new version

crdlt

André

Re,

Pour l'onglet paramètres l'idéal est d'avoir une cellule ou on peut changer l'année (genre la cellule en jaune) et le reste serait automatique, d'où la formule.

Petite question est ce normal que le bouton copier dans l'onglet "BD" ne recopie que sur les onglets U14, U12 et pas les autres?

Merci pour tout.

Re,

normalement la U12, devrait pas copier (je pense que c'est la duplication de la feuille u14 qui a du faire cela)

c'est cette fin de partie du code de la macro du bouton copier de l'onglet BD et pour répondre c'est normal,

Worksheets(4).Activate
    Range("Tableau3[#All]").Select

    Selection.FormatConditions.Delete

  Range("a1").Activate
'...

il faut que l'on trouve cette formule sur l'onglet BD

=SI($L4="";"";SI(INDEX(paramètres!$A$1:$A$6;EQUIV(CNUM(DROITE($L4;4));paramètres!$B$1:$B$6;1))=G$2;1;""))

et après associé le bouton copier pour chaque onglets indépendamment

Re,

Afin d'essayer de trouver une formule qui pour moi est très compliqué vu la complexité de celle-ci, je vais mettre sur le forum un classeur-exemple espérant qu'un pro en la matière puisse voir si c'est faisable, que je remercie d'avance pour celles ou ceux qui aideront,

pourriez-vous me dire si c'est cela j'ai bien compris avant de poster merci ou de rectifier certains points

ci-joint

16exemple-aide.xlsx (21.79 Ko)

Re, merci

Il y a une petite erreur dans l'onglet paramètres en B3;B4 et les autres (=B2+3) ce n'est pas +3 mais +2 pour que les années se suivent, il n'y a qu'en U14 ou il y a 3 années.

Je reposte le fichier corrigé.

22exemple-aide-1.xlsx (16.32 Ko)

Bonjour toutes et tous

re, merci de cette correction,

je pense à un truc tout bête mais, qui peut fonctionner si admettons on cherche la date comprise dans telle ou telle catégorie si nous plaçons directement la date comme ceci =ANNEE($K4) dans une autre colonne de la feuille BD

grâce à cette colonne, l'on peut retrouver telle catégorie (je me répète arf)

date de naissance 17/10/2020 donnera 2020

=ANNEE($K4)

j'essaie des tests ...

...

Bonjour toutes et tous

re,

bon, j'ai légèrement avancé mais prudemment dans ce classeur de test, la formule qui m'a fait transpiré j'en ai adapté une mais, il faudra modifier des trucs sur l'autre classeur initial, bien entendu ce n'est pas encore gagné mais, on y arrive.

ztesta

ci-dessus image 1 onglet BD du classeur test, on peut changer les dates de naissance jj/mm/aaaa (avec des mises en forme conditionnelles sous les couleurs de texte caché de chaque colonne de A à H)

ztestb

la 2ème image on voit que cela correspond 'partie de droite contour jaune (la recherche s'effectue en vertical , bien entendu)

et le classeur test ci-joint

et le classeur initial ci-joint

après je m'occupe du transfert de colonne dans chaque onglet

on va y arrivé!

crdlt,

André

Bonjour toutes et tous

Je deviens dingue pour trouver le bon codage pour effectuer transfert de la colonne B si comprend le chiffre "1" de l'onglet BD pour effectuer le transfert uniquement si la ligne correspond au chiffre 1 (avec formule dans ces cellules) pour le transfert sur la feuille U14

j'ai essayé Range... cela bloque quelque part , ....

(le problème c'est que ces lignes comprennent toutes des formules) et me recopie à chaque fois les lignes des autres colonnes comprenant les chiffres 1)

je bloque à ce niveau sorry

' Option Compare Text  ??? ou Option Explicit

Sub CopyData2()
 ' merci à 3GB pour ce code
 ' https://forum.excel-pratique.com/excel/copie-cellules-sous-condition-147361
 '-------------------------------------------------------------------------------

' declaration des variables
Dim Colspec As Range, plage As Range
Dim i%

On Error Resume Next

  With Sheets("BD")

    '  #######   U14 ####                            '  modifier 28102020 U14
    ' on va chercher les colonnes H, I et L des colonnes voulues sur la feuille BD (3)
    Set Colspec = .Range("H:H, I:I, L:L, Y:Y") 'colonnes voulues
    For i = 4 To 847 'pour les lignes de 4 à 847
        If Sheets("BD").Range("B" & i).Value = "1" Then 'si la colonne B = ???? ==>"4" j'ai changé j'ai mis 4 pour 4ème ligne
            If plage Is Nothing Then 'si la plage à copier est vide
                Set plage = Intersect(Colspec, .Rows(i)) 'initialisation de cette plage
            Else 'sinon
                Set plage = Union(plage, Intersect(Colspec, .Rows(i))) 'la plage annexe les nouvelles cellules (ligne en cours)
            End If
        End If

    Next i
With Sheets("U14")
.Range("A5").Select
plage.Copy Destination:=Sheets("U14").Range("A" & 5)  'copie de la plage effectif dans la feuille " U14 " en A5

    Selection.FormatConditions.Delete

   Range("TableauU14[#A1]").Select

  End With
    Range("A1").Activate
End With

End Sub

ci-joint

crdlt,

André

Bonjour,

Désolé de répondre si tardivement. Merci beaucoup pour le travail effectué. De mon côté je cherche, je potasse les forums, les exemples sans succès

pour l'instant.

Bpnjour, je continue de potasser différents exemples sans m'en sortir. Jai beau être confiné je ne trouve pas de solutions.

Merci à tous ceux qui verront ce message si quelqu'un peut nous sortir de cette impasse.

Cordialement.

Peut on avancer sur d'autres détails?

Il faudrait que dans l'usf2

"licence" (licence) menu déroulant Validé / En cours / Non validé (licence payé) menu déroulant Payé / Non payé

"Page4" pour le certificat médical et les autorisations menu déroulant Oui / Non Pour les taille bas et haut menu déroulant comme dans l'usf1

Merci de votre aide.

Cordialement.

Bonjour,

Je n'ai plus de nouvelles de votre part je suis un peu triste car c'est grâce à vous que je peux avancer.

Je n'avance pas beaucoup malheureusement. Pouvons nous avancer sur d'autres points car perso je n'ai toujours pas de solutions pour copier dans les bonnes feuilles par rapport aux années.

1) Comment fait on pour modifier des textbox en combobox dans l'USF2? A chaque que je surprime une textbox et que je la remplace par une combobox avec le bon code (rowsource) ça me fait buguer l'usf2?

Merci de votre aide si précieuse pour moi.

En espérant avoir une réponse de votre part et j'espère sincèrement que vous vous portez bien en ces moments difficiles.

Bonjour toutes et tous

Désolé ces derniers temps, je suis débordé, merci également je vais bien

toutes les tentatives ont échoués, hélas,

je vais essayer de revoir tout cela de A à Z

crdlt,

André

Je suis trop content d'avoir une réponse de votre part. Encore merci pour le temps que vous accordez à mon projet.

Bonjour toutes et tous

@Lulu, bonjour

j'ai peut être trouvé une façon simple pour le chiffre '1' trouvé dans la colonne B pour U14 et cela fonctionne pour les autres onglets

en plaçant une formule

le pb c'est qu'il faut vérifier pour les autres onglets

Exemple dans la cellule A5 de l'onglet U14

=SIERREUR(RECHERCHEV(1;BD!$B4:AH$5000;7;0);"")

formule ci-dessus traduction basique :

SIERREUR = en cas d'erreur d'où ;"") en fin de formule ci-dessus la cellule en question ne mettra rien du tout donc, vide

RECHERCHEV = formule de recherche verticale dans l'onglet BD d'où le point d'exclamation (BD!),

1 = le chiffre 1 c'est le chiffre 1 que l'on recherche de la feuille en cours et de la colonne B (pour cet exemple bien entendu)

$B4 = la colonne B de la feuille en cours sur cette feuille BD (là ou il y a marqué u14 en entête et la 4ème ligne de la colonne B)

$B4 :AH$5000 ; 7 = bon là c'est la matrice ou plage* (si j'ose dire), c'est grâce à cela que je vais dire la 7 colonne tu note cela dans la cellule et 5000 jusqu'à la 5 000èmes lignes (on peut réduire)

en grosso modo

NOTEs: pour la colonne comprenant des dates 'colonne en date courte' +pour la colonne pour les numéros de licence 'personnalisé' sur tout les onglets U14, U10 etc

voir les onglet s BABY, u14

attention toutefois au décalage de colonnes pour les autres onglets, je n'ai pas tout vérifier

ci-joint

crdlt,

André

Bonjour, nickel la formule fonctionne. Par contre au lieu de créer un bouton pour chaque catégorie est il possible d'avoir un seul bouton "MAJ" qui une fois les joueurs créés ou modifiés on appuie sur le bouton "MAJ" et ça met toutes les feuilles à jour.

J'espère être clair.

Merci beaucoup.

Bonjour toutes et tous

@Lulu, bonjour, j'ai modifié le code un peu farouchement voir épineux

ce qui va se passé, lors du clic sur le bouton MAJ e la feuille BD cela va zctivé actualiser les onglets u14, u8 u6 baby etc , en les activant le code de chaque feuille puisque active déclenchera le code de chaque feuille et qui supprimera les doublons (de A5 à A20 )

    'Définit la plage de cellules pour la recherche de doublons
    Set Plage = Worksheets("BABY").Range("A5:A20")  'on peut mettre à A5:A50 ' il faut penser que la macro sera donc plus longue bien entendu!

, je n'ai pas trouvé mieux pour l'instant

Note: le code des feuilles (supprime doublon d'une colonne viens du site developpez.com merci à eux)

ci-joint

crdlt,

André

Bonjour à tous,

J'ai cru comprendre que le bouton "MAJ" de la feuille "BD" devait copier les données de chaque ligne ( contenant le chiffre 1 ) dans les différents tableaux ...

Si c'est bien le cas ...

J'ai renommé les tableaux pour établir une concordance avec les entêtes de colonne et j'ai modifié la macro ...

Un tableau structuré ne doit pas comprendre plusieurs lignes vides ...

Un essai ...

ric

Rechercher des sujets similaires à "code vba fichier creation modification base donnees"