XL 2016 Bouton VBA pour alimenter une base de donnée

!xmusaton

XLDnaute Nouveau
Bonjour à tous,

J'ai un formulaire Excel présentant une fiche de temps avec différentes données à indiquer : Date d'encodage (date du jour), Nom, Service, N° de la semaine et les différentes heures passées par projet pour le NOM de la personne indiqué.

J'aimerai créer un programme vb via un bouton dans ce formulaire (sans Userform) qui permet d'alimenter la base de donnée se trouvant dans la deuxième feuille (BD).

C'est à dire, quand je remplie les cellules de données et j'indique les heures passées sur les projets (pas nécessairement que toutes les cellules d'heures soient remplies), en cliquant sur le bouton "ajouter" cela me crée des lignes dans le tableau de BD, toujours en répétant le NOM , Service , N° semaine et date d'encodage avec à chaque fois le nombre d'heures passées.

Pourriez vous m'aider svp?

Je vous joins mon fichier xl.

UN TOUT GRAND MERCI PAR AVANCE :)
 

Pièces jointes

  • testR.xlsx
    21.9 KB · Affichages: 46

!xmusaton

XLDnaute Nouveau
Bonjour Dudu2, merci de votre réactivité.
Idéalement on appuie sur le bouton une seule fois quand on aura fini de taper les heures, et là ça crée une ou plusieurs lignes dans le tableau BD selon le nombre de cellules contenant l'heure indiquée.
Autrement dit, il check la colonne C, si la cellule est NON VIDE il crée une ligne dans la BD en copiant l'heure indiquée dans cette cellule, l'ID du projet correspondant et le NOM+SERVICE+SEMAINE+DATE D'encodage.
 

Dudu2

XLDnaute Barbatruc
Ok, et je répète ma question car tu ne l'as pas vraiment lue...
Quid si on appuie 5 fois de suite sur le bouton ? Les lignes contenant des heures sont copiées 5 fois ?

En d'autres termes, pour éviter de copier plusieurs fois la même chose, faut-il effacer les heures de la colonne Heures une fois la copie terminée ?
 

Dudu2

XLDnaute Barbatruc
Ok je te fais le code.
Il eut mieux valu utiliser des tableaux structurés pour éviter du paramétrage dans le code du genre:
VB:
Public Const NomFeuilleFormulaire = "Formulaire"
Public Const FeuilleFormulaire_CelluleDateDencodage = "B1"
Public Const FeuilleFormulaire_CelluleSemaine = "B3"
Public Const FeuilleFormulaire_CelluleNom = "B4"
Public Const FeuilleFormulaire_CelluleService = "B5"
Public Const FeuilleFormulaire_NoColonneIdProjet = 1
Public Const FeuilleFormulaire_NoColonneNomProjet = 1
Public Const FeuilleFormulaire_NoColonneHeures = 3
Public Const FeuilleFormulaire_NoPremièreLigneDonnées = 8

Public Const NomFeuilleBD = "BD"
Public Const FeuilleBD_NoColonneNom = 1
Public Const FeuilleBD_NoColonneService = 2
Public Const FeuilleBD_NoColonneSemaine = 3
Public Const FeuilleBD_NoColonneIdProjet = 4
Public Const FeuilleBD_NoColonneNomProjet = 5
Public Const FeuilleBD_NoColonneHeures = 6
Public Const FeuilleBD_NoColonneDateDencodage = 7
Public Const FeuilleBD_NoPremièreLigneDonnées = 2
 

!xmusaton

XLDnaute Nouveau
C'est super Merci! sauf que quand je copie le code dans mon fichier de base là ou il y a dejà une base de données pré-encodée, j'obtient toujours les lignes ajoutées en premier et non pas à la fin du tableau..

Que dois-je changer au niveau du code dans ce cas? (dsl si la question parait débile mais je viens de débuter sur VB)

Merci à toi encore xx
 

Dudu2

XLDnaute Barbatruc
Je ne sais pas. Ça marche avec le fichier de test que tu as envoyé.
Ton tableau BD dans ton fichier réel n'est sûrement pas positionné de la même façon, et il faut donc adapter les paramètres (constantes). Mais je ne peux pas deviner.
Envoie un screenshot du haut de ce tableau avec les entêtes de colonnes (A, B, C, ...) et de lignes (1, 2, 3, ...)
En utilisant un tableau structuré, ce problème ne se poserait pas.
 

!xmusaton

XLDnaute Nouveau
Bonjour Dudu2,

Je reviens vers toi avec le même fichier.
En fait au niveau de la cellule "Nom" dans la feuille "Formulaire", j'ai ajouté un menu déroulant avec les noms déjà encodés dans la BD, je voudrais qu'on choisissant le nom, les heures encodées auparavant pour le nom choisi s'affichent également, et qu'on peut faire une modif si l'on souhaite.. et en cliquant sur ajouter ça alimente la base de données de nouveau (en copiant la totalité ce qui a été modifé ou pas modifié)

Voici le fichier,
Merci beaucoup par avance
 

Pièces jointes

  • testR (1).xlsm
    35.2 KB · Affichages: 8

!xmusaton

XLDnaute Nouveau
Salut Dudu2
C'est déjà TOP merci beaucoup.
Sauf que les valeurs du choix du Nom précédent reste affichées quand je change de nom.
Exemple, quand je sélectionne Nom-XXX , j'ai deux valeurs 8 et 5 ok nickel , Puis quand je change le Nom en ZZZ j'ai les valeurs du XXX qui restent affichées aussi... je souhaite que ça m'affiche juste les valeurs du nouveau choix (ZZZ)
 

Discussions similaires

Statistiques des forums

Discussions
312 330
Messages
2 087 339
Membres
103 524
dernier inscrit
Smile1813