Formulaire (userform) pour incrémenter un tableau

lucratif

XLDnaute Nouveau
Bonjour,

J'essaie depuis un bon bout de temps de créer un formulaire (userform) qui incrémentes les différentes cellules de mon tableau. J'ai suivi différents tuto avec lesquels j'ai pas mal compris comment réaliser ce genre de formulaire.
Cependant, le problème se situe toujours au niveaux du code VBA pour que ce soit la bonne ligne qui sont incrémenter.

J'en demande donc à vos connaissances,

Je joint un fichier exemple qui explique clairement ma demande. (Enfin je l'espère)

Merci beaucoup,
 

Pièces jointes

  • Fichier exemple pour forum.xlsm
    11.2 KB · Affichages: 51
  • Fichier exemple pour forum.xlsm
    11.2 KB · Affichages: 47
  • Fichier exemple pour forum.xlsm
    11.2 KB · Affichages: 47

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Formulaire (userform) pour incrémenter un tableau

Bonjour lucratif,

Je joint un fichier exemple qui explique clairement ma demande. (Enfin je l'espère)

si tu pouvais joindre le fichier avec l'USF que tu as construit, ça nous permettrait au moins de pouvoir gagner du temps et de t'apporter une réponse correspondant exactement à tes besoins

à+
Philippe
 

lucratif

XLDnaute Nouveau
Re : Formulaire (userform) pour incrémenter un tableau

Bonjour,

Je n'ai pas recré le USF dans ce fichier car c'est une petite extraction de mon fichier source bien plus conséquent. De toutes manière mon formulaire était très basique et ne fonctionnait pas. J'ai seulement réussi à dire :

- Ce champs du formulaire incrémente la cellule A1

J'ai aucune connaissance en VBA, ou alors très peu. J'ai suivi un tuto qui ma permis de comprendre la logique, mais je reste incapable de coder ce genre de chose malheureusement.

Mon USF ne vous aidera vraiment pas, désolé,

Merci,
 
Dernière édition:

lucratif

XLDnaute Nouveau
Re : Formulaire (userform) pour incrémenter un tableau

Merci, avec cet exemple je vais pouvoir construire une partie du formulaire moi même.

Pouvez-vous svp, me montré comment réaliser un champs avec liste déroulante ?

De même, comment dois-je procéder pour les "sous projets" ? (comme expliqué dans mon fichier joint).
=>Le sous projet doit s'incrémenter à un endroit précis, c'est à dire sous le projet auxquel il appartient.

Par exemple, si le sous projet appartient au projet "Améliorer la qualité du produit", le sous projet doit être incrément juste en dessous.

Je pensais donner une référence au projet : par exemple 1.1.
De cette manière, dans le formulaire on spécifie la référence et les champs s'incrément juste en dessous de cette référence.

Je ne sais pas du tout ce qui est envisageable ou non. J'essai juste de trouver une solution de moi même...
 

lucratif

XLDnaute Nouveau
Re : Formulaire (userform) pour incrémenter un tableau

Pour participer, j'ai réaliser les deux Userform que je souhaitait.

- Un pour ajouter un projet
- Un pour ajouter un sous projet

Pouvez vous réaliser les codes correspondant ?

J'ai essayer de moi même, mais je n'ai pas les connaissances pour. J'arrive pas à choisir la bonne ligne et colonne d'incrémentation.
Pour les sous projet, l'utilisateur doit d'abord choisir à quel projet il correpond. Lors de la validation le sous projet s'ajoute alors juste en dessous du projet.

Merci,
 

Pièces jointes

  • Fichier exemple pour forum.xlsm
    27.7 KB · Affichages: 70
  • Fichier exemple pour forum.xlsm
    27.7 KB · Affichages: 64
  • Fichier exemple pour forum.xlsm
    27.7 KB · Affichages: 54

lucratif

XLDnaute Nouveau
Re : Formulaire (userform) pour incrémenter un tableau

Avec les exemples de vos fichiers précédents j'ai écris un code VBA pour le Userform 1. Par contre, je ne sais pas pourquoi, le userform modifie toujours la même ligne. Il ne passe pas à la ligne suivante...

Private Sub UserForm_Initialize()
'Pas necessaire de passer par une variable tableau
ComboBox2.List = Array("Investigation", "En cours", "Clôturer")
End Sub


Private Sub CommandButton1_Click()
If TextBox5 = "" Or TextBox2 = "" Then
MsgBox ("Vous devez remplir les champs")
Exit Sub
End If
derligne = Range("A65535").End(xlUp).Row + 1
Cells(derligne, 2) = ComboBox2
Cells(derligne, 3) = TextBox5
Cells(derligne, 5) = TextBox2
Cells(derligne, 6) = TextBox5
Cells(derligne, 7) = TextBox2
Cells(derligne, 8) = DTPicker1
Cells(derligne, 9) = DTPicker2
Unload Me


End Sub
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Formulaire (userform) pour incrémenter un tableau

Re-Bonjour

Le formulaire sert à quoi ? Il s'agit de deux liste déroulante. Mais il ne complète pas le fichier. Il n'y à pas de bouton de validation...
Le fichier joint au post #6 était uniquement destiné à montrer l'utilisation de listes en cascade.
Le choix dans la liste de gauche ( projets 1,2,3,......) détermine le contenu de la liste de droite ( s/projets)


Je ne peux malheureusement pas tester le fichier à cause du DtPicker présent sur l'USF
111.jpg

Par contre, je ne sais pas pourquoi, le userform modifie toujours la même ligne. Il ne passe pas à la ligne suivante...
c'est parce que la dernière ligne est calculée en fonction de la colonne A
il y a lieu de modifier: derligne = Range("A65535").End(xlUp).Row + 1
comme ceci: derligne = Range("B65535").End(xlUp).Row + 1

à+
Philippe
 

Pièces jointes

  • 111.jpg
    111.jpg
    38.2 KB · Affichages: 75
  • 111.jpg
    111.jpg
    38.2 KB · Affichages: 80

lucratif

XLDnaute Nouveau
Re : Formulaire (userform) pour incrémenter un tableau

Merci,

Je vais travailler là dessus. Que faut il ajouter dans le code pour dire de commencer à partir de la ligne 6 par exemple ?

Avez vous une solution à me proposer pour mon Userform2 ? Comment puis je procéder pour incrémenter les sous projet en dessous du projet correspondant ?

PROJET
SOUS PROJET
 
Dernière édition:

lucratif

XLDnaute Nouveau
Re : Formulaire (userform) pour incrémenter un tableau

Pour mon USF 2, j'ai réaliser un code qui permet de sélectionner le nom du projet. Il s'agit d'une liste déroulante qui reprend toutes les information contenues en colonne C.

Ma question est donc maintenant la suivante : comment faire pour que lors de la validation du formulaire, les données soient ajoutés dans une nouvelle ligne qui se trouve en dessous de la ligne qu'on à sélectionnée avec la liste déroulante de l'USF ?

J'ai tenté Rows(Lign = ComboBox1.ListIndex + 3).Insert sans résultat...

Private Sub UserForm_Initialize()


ComboBox2.List = Array("Investigation", "En cours", "Clôturer")


With Sheets("Sheet1")

For n = 2 To .Range("C65535").End(xlUp).Row
ComboBox3.AddItem .Cells(n, 3).Value

Next n

End With

End Sub
 

Pièces jointes

  • Untitled.jpg
    Untitled.jpg
    50.1 KB · Affichages: 40
  • Untitled.jpg
    Untitled.jpg
    50.1 KB · Affichages: 44
  • Untitled.jpg
    Untitled.jpg
    50.1 KB · Affichages: 35
Dernière édition:

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Formulaire (userform) pour incrémenter un tableau

Re,

voir fichier joint

j'ai malheureusement du supprimer les DtPicker qui me posaient problème ( ils ne sont pas installés sur mon Pc)


à+
Philippe

Edit: Le fichier joint a été réalisé avant la dernière demande
Edit2: Je ne serai guère disponible pendant 10 jours
 

Pièces jointes

  • 111.xlsm
    27.7 KB · Affichages: 50
  • 111.xlsm
    27.7 KB · Affichages: 53
  • 111.xlsm
    27.7 KB · Affichages: 50

lucratif

XLDnaute Nouveau
Re : Formulaire (userform) pour incrémenter un tableau

Avec ce fichier joint j'apprends uniquement à ajouter de la couleur pour mes Projet et sous projet...

- Je ne sais toujours pas ce qu'il faut modifier dans le code pour commencer à la ligne 6, 10 ou 25 par exemple.
J'ai égelement besoin que les données s'ajoutes à la première ligne de libre (pour anticipé la supprésion de certain projet au fure et à mesure...)

- Je n'ais toujours pas trouver le code VBA permettant d'ajouter un sous projet à un projet.

Merci beaucoup de prendre du temps pour moi. On touche tout même grandement à la fin...

Pour mon USF 2, j'ai réaliser un code qui permet de sélectionner le nom du projet. Il s'agit d'une liste déroulante qui reprend toutes les information contenues en colonne C.

Ma question est donc maintenant la suivante : comment faire pour que lors de la validation du formulaire, les données soient ajoutés dans une nouvelle ligne qui se trouve en dessous de la ligne qu'on à sélectionnée avec la liste déroulante de l'USF ?

J'ai tenté Rows(Lign = ComboBox1.ListIndex + 3).Insert sans résultat...

Private Sub UserForm_Initialize()


ComboBox2.List = Array("Investigation", "En cours", "Clôturer")


With Sheets("Sheet1")

For n = 2 To .Range("C65535").End(xlUp).Row
ComboBox3.AddItem .Cells(n, 3).Value

Next n

End With

End Sub
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Formulaire (userform) pour incrémenter un tableau

Re,

Avec ce fichier joint j'apprends uniquement à ajouter de la couleur pour mes Projet et sous projet...
il fallait aller voir un peu plus loin car ce que j'ai réalisé ne se limite pas à ça



- Je ne sais toujours pas ce qu'il faut modifier dans le code pour commencer à la ligne 6, 10 ou 25 par exemple.
ça je ne pouvais pas le deviner car il n'en n'a jamais été question !!!
Si c'est pour combler des lignes vides il sera nécessaire de créer un 3ème USF ( identique au 2nd ) pour éviter des complications




J'ai égelement besoin que les données s'ajoutes à la première ligne de libre (pour anticiper la suppression de certain projet au fure et à mesure...)
si un projet est supprimé je suppose que cela serait fait "proprement" et qu'il n'y aura pas de lignes vides n'importe où dans le tableau

Mon code est prévu pour mettre les nouvelles données à partir de la première ligne vide en bas de tableau
....... et pour cela, le calcul de la première ligne vide se fait en fonction de la colonne A
cette colonne A reçoit un caractère (le point décimal) via les macros
( il n'est pas aisé de calculer à partir des colonnes C & D car il y a des cellules vides dans l'une ou l'autre)
il est cependant possible de calculer la position de la première ligne vide en fonction des colonnes E, F, G, H ou I
mais il faudra être certain qu'elles seront toujours remplies.
Pour cela, il serait alors utile d'ajouter un test pour savoir si tous les TextBox,, DtPicker & ComboBox sont remplis avant d'envoyer leurs contenus vers la feuille



- Je n'ais toujours pas trouver le code VBA permettant d'ajouter un sous projet à un projet.
il est pourtant là
.......... et ça se fait via l'userform2 qui s'ouvre avec le bouton "Ajouter un sous-projet" ( celui qui se trouve à droite au dessus de la feuille)


à+
Philippe
 

Discussions similaires

Statistiques des forums

Discussions
312 492
Messages
2 088 910
Membres
103 983
dernier inscrit
AlbertCouillard