Excel VBA - Gestion d'une BDD (Module n° 2)

Поделиться
HTML-код
  • Опубликовано: 7 ноя 2024

Комментарии • 87

  • @michelcarrere644
    @michelcarrere644 5 лет назад +1

    vidéo claire et précise j ai fait les 2 premier modules et sa fonctionne super merci.MICHEL

  • @hassanezarga
    @hassanezarga 6 лет назад

    Merci pour l'effort
    Pour le suppression d un matricule
    j ai utilisé ce code
    Sub supprimer()
    Dim reponse As Integer
    reponse = InputBox("Quelle matricule voulez vous supprimer")
    b = Range("A1048576").End(xlUp).Row
    For i = 1 To b
    If Cells(i, 1).Value = reponse Then
    MsgBox ("l'intervention " & reponse & " sera suprimmé")
    Rows(i).Delete
    Else
    End If
    Next i
    End Sub
    Et ça marche trés bien

  • @bxolt46
    @bxolt46 7 лет назад +1

    Tout juste génial merci. Je me suis reconcilié avec les macros et le VBA

  • @samuelallenspach6707
    @samuelallenspach6707 7 лет назад +1

    Bravo pour tes tutos. Claire et utile. Merci beaucoup.

  • @motorrd9503
    @motorrd9503 4 года назад

    Bonjour Coach
    Les Tutaux que vous présentez sont très riche en enseignement et je ne m'en cache pas que j'ai appris beaucoup de vous Coach, permettez moi juste une seule remarque sur le module "BtnValider" il allait peut être rajouter un petit test pour ne pas valider des champs vides dans la validation du formulaire à part cela c'est parfait et merci beaucoup..

  • @anniemorin111
    @anniemorin111 2 года назад

    Merci pour ce tuto vraiment très clair ! Lorsque je supprime à partir de mon formulaire je perds des lignes dans ma base de donnée. Vous connaissez la raison ?

  • @aboureda3728
    @aboureda3728 6 лет назад

    Merci pour tous vos efforts. Excellent

  • @echataabdillahbachirou205
    @echataabdillahbachirou205 5 лет назад

    brovo tu es le meilleur

  • @ericgonzalez5232
    @ericgonzalez5232 8 месяцев назад

    Bonjour à toutes et tous ! Super Tuto ! J'ai une petite question, peut on séparer les boutons de la feuille ou les mettre par exemple à un niveau plus haut, si je supprime les premiers enregistrements mes boutons se réduisent :p ! Bon je chipote et je re débute... Merci pour vos réponses

    • @Learnaccess
      @Learnaccess  8 месяцев назад

      Il faut dissocier le bouton de vos cellule

    • @ericgonzalez5232
      @ericgonzalez5232 7 месяцев назад

      @@LearnaccessMerci pour la réponse

  • @yvesguyet4527
    @yvesguyet4527 2 года назад

    Merci de vos explications vraiment claires et limpides.
    J'ai réalisé un tableau de bord qui rassemble des événements à l'attention d'animateurs. Le tableau de Bord est accessible à beaucoup de personne.
    Lorsqu'il valide un événement, je souhaite que celui-ci soit enregistré dans la base de données mais qu'ils ne puissent plus modifier la base de données.
    Comment donc rendre la base accessible par le formulaire mais pas manuellement par la suite par le personnel. Il ne doivent juste pouvoir le consulter ?
    D'avance merci de votre retour

    • @Learnaccess
      @Learnaccess  2 года назад

      Bonjour,
      Il faudra protéger la feuille via le code VBA juste après avoir saisie le nouvel enregistrement
      et la déprotéger juste avant la saisie.
      J'ai montré cela dans plusieurs vidéo.

  • @samoth7309
    @samoth7309 5 лет назад +1

    Bonjour, super explication mais j'ai un problème ... comment fait-on pour faire une boucle WHILE pour chercher la cellule vide , dans une feuille du classeur précise? ici nous sommes sur la feuille "source" mais si je veux faire la même chose sur une autre feuille qui n'est pas la 1ere du classeur, set-ce possible ?

    • @Learnaccess
      @Learnaccess  5 лет назад

      Oui. Il faut juste mettre le nom de la feuille sur laquelle vous souhaitez aller

    • @samoth7309
      @samoth7309 5 лет назад

      @@Learnaccess merci. 😀 mais je n'y arrive quand mm pas... J'ai écrit ceci : Do While ThisWorkbook.Sheets ("nompage").Cells (i, 1) ""
      Correct ? J'ai ensuite rajouter cette syntaxe (ThisWorkbook. .... ) devant chaque Cells.
      J'ai taper la mm fonction supprimer que vs pour essayer, idem , elle marche aussi uniquement sur la feuille "ouverte" du fichier et nn sur la feuille nommé.
      Jss un peu perdu 😂

    • @Learnaccess
      @Learnaccess  5 лет назад

      Tho Mas
      Pas besoin de boucle :
      Sheets(« nomfeuille »).activate
      Range (« A1 »).select
      Sélection.end(xldonwn).select
      Activecell.offset(1,0).select

    • @samoth7309
      @samoth7309 5 лет назад +1

      @@Learnaccess ha ! Javou Vs m'avez mis en PLS direct la 😀 je vous est perdu ! Mn fichier doit pas être coopératif !

  • @francoisqueval3913
    @francoisqueval3913 7 лет назад

    Est-il possible d'avoir la formule "=concatener(B1; C2)" qui s'ajoute automatiquement à la place dans votre exemple du matricule (1 / 2 / 3 / 4 ...) ? Et ensuite quand je clique sur le bouton modifier, il me demande le concatener (dans notre exemple "BERTOULDCLAUDIE" ==> ce qui me donne toutes les infos de la ligne pour ensuite les modifier. Est-ce possible ?

  • @lilinbl7992
    @lilinbl7992 6 лет назад

    bonjour , merci pour vos vidéos , j'ai juste un prob quant je clic sur le bouton ajout il décent jusqu’à la dernière ligne de la feuille puis il remonte a la dernière ligne du tableau pour incrémenté les données , j'aimerais savoir pourquoi et merci

    • @Learnaccess
      @Learnaccess  6 лет назад

      Bizzarre, il n'est pas sencé Descendre et Remonter sans que l'on lui demande
      Regardez votre code et vérifier s'il y a un Xlup ou XlDown

    • @lilinbl7992
      @lilinbl7992 6 лет назад

      merci pour votre repense vais vérifier

  • @guiddirsaad2156
    @guiddirsaad2156 7 лет назад

    monsieur j'arrive pas à trouver la vidéo gestion de bdd module n 3 svp je peux avoir le lien et merc

  • @lorimedicenter4439
    @lorimedicenter4439 2 года назад

    s'il vous plait mr.... donne moi le lien vers la formulaire de modification

  • @tatiananaka8377
    @tatiananaka8377 2 года назад

    Félicitation pour les tutos mais je ma boucle ne marche pas. Lorsque j'entre les données et que j'entre encore pour une deuxièmes fois la deuxièmes information supprimer la premier alors que j'ai bien et belle entré les codes

    • @Learnaccess
      @Learnaccess  2 года назад

      Je pense que cela vient de l'outil tableau
      IL vous faut avoir au moins une données dans votre tableau avant d'en rajouté une nouvelle...

  • @cheikhoumardieng2154
    @cheikhoumardieng2154 7 лет назад +1

    Bonjour excellent tuto. mais la partie suppression du salarié mon code pour le decompte ne marche pas et je ne vois pas d'erreur: For i = .Range("A" & .Rows.Count).End(x1Up).Row To 2 Step -1
    merci de m'aider

    • @walidyamoun
      @walidyamoun 7 лет назад

      Bonjour, j'ai le même problème que vous. Avez-vous trouvé une solution ou toujours pas? (merci d'avance)

    • @mohamedhachimy3616
      @mohamedhachimy3616 7 лет назад +1

      c'est (xlUP) L c'est pas un 1

    • @salahdhmn9004
      @salahdhmn9004 4 года назад

      Je vous remercie effectivement c'est L et non 1

  • @boukhelifmokhtar5372
    @boukhelifmokhtar5372 7 лет назад

    bonjour, merci pour votre tuto et si je veux supprimer un enregistrement a partir d'un nom et prénom je vais faire koi ??? svp

    • @Learnaccess
      @Learnaccess  7 лет назад

      Il faut :
      1. rechercher et se positionner sur le champs à supprimer
      2. Lorsque vous être sur l'enregistrement, il faut juste supprimer sa ligne
      Attention aux homonymes : il se peut que vous ayez deux fois le même nom, donc il faut créer une clé unique.

    • @boukhelifmokhtar5372
      @boukhelifmokhtar5372 7 лет назад

      au lieu de faire (Rows.count ) je ferais koi ??

    • @Learnaccess
      @Learnaccess  7 лет назад

      Il faut déjà trouver la valeur à supprimer.
      Se positionner dessus
      en ensuite la supprimer.
      POur cela il faut faire une boucle qui parcours toutes les lignes de votre colonne jusqu'à ce qu'il trouve la valeur sélectionnée.

  • @brunoroullier6989
    @brunoroullier6989 3 года назад

    Bonjour, pour moi jusqu'ici tout fonctionne, à un petit détail prêt. Ce que j'ai fait c'est une bdd clients avec numéro de client. Mais au lieu d'avoir des numéros 1, 2, 3, etc. Mes numéros doivent commencer par A3D-01 mais bien sur je n'arrive pas à incrémenter comment pourrais-je faire car je n'ai que ca qui coince. Merci pour votre aide.

    • @Learnaccess
      @Learnaccess  3 года назад

      Si la A3D- est une donnée fixe et que vous devez juste incrémentée les 01, 02 , 03 derrière vous pouvez le faire avec une simple concaténation de chaine de texte
      du genre : "A3D-"&01

    • @brunoroullier6989
      @brunoroullier6989 3 года назад

      @@Learnaccess Merci pour votre réponse rapide. Mais où le mettre et de quel facon.
      Else
      'On incrémente le numéro Client
      ActiveCell.Offset(0, -1).Value = ActiveCell.Offset(-1, -1) + 1

      End If

    • @Learnaccess
      @Learnaccess  3 года назад

      @@brunoroullier6989
      Le plus simple c’est de mettre votre incrémentation dans une cellule et ensuite aller chercher l’info via le formulaire

    • @brunoroullier6989
      @brunoroullier6989 3 года назад

      @@Learnaccess mais je ne vois pas du tout comment faire

    • @Learnaccess
      @Learnaccess  3 года назад

      @@brunoroullier6989 je vais essayer de faire un tuto

  • @juliendewallers6374
    @juliendewallers6374 11 месяцев назад

    bonjour, merci pour votre tutoriel tout fonctionne sauf le bouton supprimer il me donne cette erreur "For i = .Range("A" & .Rows.Count).End(xlUp).Row To 2 Step -1"
    pourtant j'ai scrupuleusement suivit toutes vos indications, j'ai relue le code plusieurs fois pour comprendre d'où venais le problème ou si il manqué du code Mais tout est exactement comme vous, pourriez vous m'indiquer d'où peut provenir l'erreur svp ? merci car avant de créer le v bouton "Modifier" le "supprimer" fonctionné lui ...je suis perdu

    • @juliendewallers6374
      @juliendewallers6374 11 месяцев назад

      Edit : j'ai modifier le " Dim i As Integer" en " Dim i As Long" cela fonctionne mais avec une latence de plusieurs secondes
      je pense que ce doit être la cellule des numéros de téléphone qui pose problème, une idée svp ? je suis preneur

    • @Learnaccess
      @Learnaccess  11 месяцев назад +1

      Il est vide votre tableau

    • @juliendewallers6374
      @juliendewallers6374 11 месяцев назад

      Non je test le bouton une fois avoir ajouté une nouveau client donc le tableau n'est jamais vide...

    • @juliendewallers6374
      @juliendewallers6374 11 месяцев назад

      Je pourrais vous fournir le fichier pour que vous y regardiez.

    • @Learnaccess
      @Learnaccess  11 месяцев назад

      Oui envoyez le moi car pas facile de trouver l’erreur
      Mon mail : jeanpaul.bonnetto@gmail.com

  • @joris3700
    @joris3700 6 лет назад

    bonjour,
    déjà merci pour votre vidéo, c'est vraiment très bien fait et expliqué.
    j'ai toutefois un souci avec la suppression. mon bouton supprimer est sur une autre feuille et ne fonctionne pas. j'ai ajouté .activate apres le sheets et il semble aller sur la bonne page. mais le débogueur me laisse cette ligne en jaune et annonce erreur 424 :
    For i = .Range("A" & .Rows.Count).End(xlUp).Row To 2 Step -1
    que puis-je faire ?
    Sub supprimeadherent()
    Dim i As Integer
    Dim supprimeligne As String
    supprimeligne = InputBox("entrez le numéro de matricule de l'adhérent à supprimer", "Suppression d'un adhérent")
    With ThisWorkbook.Sheets("source").Activate
    For i = .Range("A" & .Rows.Count).End(xlUp).Row To 2 Step -1
    If .Range("A" & i).Value = supprimeligne Then
    Rows(i).Delete
    End If
    Next i
    End With
    End Sub

    • @Learnaccess
      @Learnaccess  6 лет назад

      Joris Maniquet
      Bonjour,
      Le numéro adhérent est bien en colonne À
      Rajoutez le nom de votre feuille devant le .Range()

    • @joris3700
      @joris3700 6 лет назад

      je vous remercie beaucoup pour votre réponse !
      j'ai tenté comme cela
      With ThisWorkbook.Sheets("source").Activate
      For i = Sheets("source").Range("A" & .Rows.Count).End(xlUp).Row To 2 Step -1
      If Sheets("source").Range("A" & i).Value = supprimeligne Then
      Rows(i).Delete
      End If
      Next i
      End With
      mais l'erreur persiste, il me dit objet requis. je n'ai jamais fait de VBA avant

  • @bouabdalahkaddour9900
    @bouabdalahkaddour9900 7 лет назад

    j'utilise un code materiel pour ma base"gestion materiel"mais cela ne pose pas de probleme pour supprimer le code materiel
    j'ai utilise votre tuto pour construire le programme et j'ai utilise 4 liste deroulante,qui marche tres biens,bien sur j'ai ameliore le userform,mais mon probleme je voudrais ajouter des bouton d'edition sur l'userform ajout par une liste par ex "chantier"en tapant simplement l'intitule et la date

    • @Learnaccess
      @Learnaccess  7 лет назад

      C'est plus une recherche filtrée qu'il vous faut dans ce cas précis

    • @bouabdalahkaddour9900
      @bouabdalahkaddour9900 7 лет назад

      un exemple de recherche filtres MERCI

    • @Learnaccess
      @Learnaccess  7 лет назад

      Bonjour,
      J'ai fait un tuto sur le sujet.
      Taper sur ma chaine dans la case rechercher les mots clés :
      - Filtre avancé - vous obtiendrez les liens des vidéos explicatives.
      Merci

  • @ismobamba6145
    @ismobamba6145 5 лет назад

    Comment me positionner sur la ligne du matricule sachant les matricules de ma base de données ne sont pas ordonnés comme le votre. Les matricules existent déjà (ils ne sont pas les incrémentés lorsque on ajoute un nouveau Agent dans la base) alors comment faire correspondre les matricule au numéro de ligne afin de faire une modification de L'agent. Merci de me répondre.

    • @Learnaccess
      @Learnaccess  5 лет назад

      Bonjour,
      Vous ne pourrez pas faire correspondre le numero du matricules avec votre ligne de feuille.
      Pas besoin d'avoir une correspondance. Il suffit d'avoir un numéro unique c'est tout.

    • @ismobamba6145
      @ismobamba6145 5 лет назад

      @@Learnaccess ok ,mais dans ce cas comment faire envoyer les données du matricule renseignés dans le INPUTBOX dans le formulaire de modification.

    • @Learnaccess
      @Learnaccess  5 лет назад

      @@ismobamba6145
      Il faut stocker la donnée de l'inputbox dans une cellule de votre classeur et ensuite la récupérer dans votre formulaire

    • @ismobamba6145
      @ismobamba6145 5 лет назад

      @@Learnaccess j'ai déjà stocké le matricule dans le formulaire. Le problème se trouve dans la récupération des informations( nom, prénom ,sexe fonction,age ....) du matricule, après avoir stocké le matricule dans le formulaire . Dans ma base les matricules ne sont pas classiques comme le votre (1,2,3,4,5,6.....) j'utilise une base déja existante et il n'ya aucune relation entre un matricule et son numéro de ligne( par exemple le matricule 7897 est sur la ligne 3 et le matricule 3467 est sur la ligne 4, le matricule 4567 est sur la ligne 5) alors la méthode de correspondance numero de ligne -- matricule ne marche pas dans mon cas. aidez moi svp.

    • @Learnaccess
      @Learnaccess  5 лет назад

      @@ismobamba6145
      POur moi, c'est le numéro du matricule que vous devez saisir dans l'inputbox et ensuite faire la recherche dans vogtre base pour aller récupérer le reste des informations. (même chose qu'une recherchev)

  • @jacquesdupong7971
    @jacquesdupong7971 7 лет назад

    Bonsoir monsieur et encore bravo pour tous vos tuttos j'ai mis en application ces 3 tuttos pour alimenter une base de données articles mais j'ai un petit problème pour la numérotation automatique n'auriez vous pas un petit code pour que à la place de prendre le numéro de la ligne précédente et de faire plus un. De prendre le plus grand nombre de la colonne matricule et d'ajouter un car qd je remets ma liste des articles par ordre croissant mon dernier nombre de ma colonne matricule n'est plus le plus grand. Merci d'avance monsieur

    • @Learnaccess
      @Learnaccess  7 лет назад

      Utiliser la fonction Max() qui récupérer la plus grande

  • @pierrevincent5357
    @pierrevincent5357 6 лет назад

    J'ai un souci la procédure DELETE ne fonctionne pas et j'ai un message"
    la méthode Delete de la classe Range a échoué..
    voici ce que j'ai écrit sachant que ma1ère ligne de saisie est la 5
    a priori c'est la ligne Rows(i).Delete
    procédure permettant la suppresion d'un enregistrement à partir d'un N° colonne A
    Sub SupprimeEleve()
    'déclaration des variable
    Dim i As Integer
    Dim SupprimeLigne As String
    'affectation des variable
    SupprimeLigne = InputBox("Veuillez saisir le numéro colonne A : N°, de la ligne à supprimer", "SUPPRESSION ELEVE")
    'on se positionne sur la feuille de la source de données
    With ThisWorkbook.Sheets("Saisie EE XXX")
    'compte le nombre de ligne de la colonne A et tu remontes de 1 ligne
    For i = .Range("A" & .Rows.Count).End(xlUp).Row To 5 Step -1
    'si correspondance entre le N° et la ligne à supprimer alors on supprime la ligne
    If .Range("A" & i).Value = SupprimeLigne Then
    'on supprime la ligne entière
    Rows(i).Delete
    End If
    Next i
    End With
    End Sub

    • @JeanPaulBONNETTO
      @JeanPaulBONNETTO 6 лет назад

      Bonjour,
      Il vaut mieux typer votre variable en Integer et non en string
      Car vous demander après de supprimer un numéro de ligne, hors vous lui mettez une chaine de texte.
      Il ne saura pas faire

    • @pierrevincent5357
      @pierrevincent5357 6 лет назад

      merci sauf qu'entre le moment ou je vous ai transmis le message, j'avais fait la manip et j'ai le message ""erreur d’exécution 1004
      la méthode Delete de la classe Range a échoué

    • @pierrevincent5357
      @pierrevincent5357 6 лет назад

      toujours bloqué avec le même code 1004

    • @JeanPaulBONNETTO
      @JeanPaulBONNETTO 6 лет назад

      désirez-vous que je vous envoi le fichier source ?
      Si Oui, envoyez moi votre adresse email à : jeanpaul.bonnetto@gmail.com

    • @pierrevincent5357
      @pierrevincent5357 6 лет назад

      merci c'est fait

  • @bouabdalahkaddour9900
    @bouabdalahkaddour9900 7 лет назад

    quelqu'un pourrai t'il m'aider j'ai un fichier source que voici cela marche tres bien avec un formulaire
    je voudrais une suite d'enregistrement sur un autre fichier location
    c'est a dire affichier les information du fichier source et continuer la saisie sur le fichier location
    ex: fichier source form1 =code,designation,taux
    location : code;designation ,taux provenant du fichier source (location affichier ces information et continuer t'elle que ht,hi,hp,Mnt
    MntI,MntP
    merci
    Dim derligne As Integer
    If MsgBox("confirmer ou ajouter des donnees?", vbYesNo, "Confirmer") = vbYes Then
    derligne = Sheets("Source").Range("A456541").End(xlUp).Row + 1
    Cells(derligne, 1) = TextBox1.Value
    Cells(derligne, 2) = TextBox2.Value
    Cells(derligne, 3) = TextBox3.Value
    Cells(derligne, 4) = TextBox4.Value
    Cells(derligne, 5) = TextBox5.Value
    Cells(derligne, 6) = TextBox6.Value
    Cells(derligne, 7) = TextBox7.Value
    End If
    End Sub
    Private Sub CommandButton2_Click()
    Unload UserForm1
    End Sub
    Private Sub CommandButton3_Click()
    Dim no_ligne As Integer
    no_ligne = ComboBox1.ListIndex + 1
    TextBox1.Value = Cells(no_ligne, 1).Value
    TextBox2.Value = Cells(no_ligne, 2).Value
    TextBox3.Value = Cells(no_ligne, 3).Value
    TextBox4.Value = Cells(no_ligne, 4).Value
    TextBox5.Value = Cells(no_ligne, 5).Value
    TextBox6.Value = Cells(no_ligne, 6).Value
    TextBox7.Value = Cells(no_ligne, 7).Value
    End Sub

    • @Learnaccess
      @Learnaccess  7 лет назад

      Bonjour,
      Si vous devez chercher des informations sur plusieurs fichiers, il faut manipuler ces derniers en mode ouverture.
      Sans cela, vous ne pourrez pas récupérer ou affecter des données dessus.

    • @bouabdalahkaddour9900
      @bouabdalahkaddour9900 7 лет назад

      un exemple serai le bienvenue merci

  • @ydb2465
    @ydb2465 3 года назад

    Bonjour, pour commencer merci et bravo pour vos tutos très riche et expliqué d'une façon à ce que tout le monde puisse en profiter.
    J'ai un problème lors du remplissage de la BD. Si celui-ci ne comporte aucune donnée et que je rentre une première entrée,
    j'ai ce message d'erreur après avoir cliquer sur VALIDER:
    'on incrémente le numéro de matricule
    ActiveCell.Offset(0, -1).Value = ActiveCell.Offset(-1, -1) + 1 ( A CE NIVEAU LA, TOUTE LA LIGNE EST SURLIGNéE EN JAUNE )
    'Unload.me 'permet de masquer le formulaire
    Merci pour votre futur aide

    • @Learnaccess
      @Learnaccess  3 года назад

      Pourquoi vous demandez à vous decaler d'une colonne vers la gauche et une ligne vers le haut ???

    • @ydb2465
      @ydb2465 3 года назад

      @@Learnaccess C'est le code que j'ai recopié que vous avez écrit sur le module 2 à 21:10

    • @Learnaccess
      @Learnaccess  3 года назад

      @@ydb2465 Si vous l'avez bien dans votre Else cela doit marcher....

    • @ydb2465
      @ydb2465 3 года назад

      @@Learnaccess je l'ai bien dans le Else mais le problème reste le même. A noter que si j'ai rentrer exemple un nom dans la BD et qu'ensuite je rentre des données depuis le formulaire aucun problème. Le problème survient uniquement si mon tableau est vide

    • @ydb2465
      @ydb2465 3 года назад

      @@Learnaccess je l'ai bien dans le Else mais le problème reste le même. A noter que si j'ai rentrer exemple un nom dans la manuellement dans BD et qu'ensuite je rentre des données depuis le formulaire aucun problème. Le problème survient uniquement si ma BD est vide

  • @jacquesdupong7971
    @jacquesdupong7971 7 лет назад

    Bonsoir monsieur et encore bravo pour tous vos tuttos j'ai mis en application ces 3 tuttos pour alimenter une base de données articles mais j'ai un petit problème pour la numérotation automatique n'auriez vous pas un petit code pour que à la place de prendre le numéro de la ligne précédente et de faire plus un. De prendre le plus grand nombre de la colonne matricule et d'ajouter un car qd je remets ma liste des articles par ordre croissant mon dernier nombre de ma colonne matricule n'est plus le plus grand. Merci d'avance monsieur