Modifier un formulaire en fonction du nombre rentré dans un autre formulair

Bonjour, j'ai du mal à mettre en place ce que je souhaite. Je vous explique J'ai une colonne de mon tableau dans lequel chaque cellule est un bouton (Double click) et ça me lance un formulaire qui rempli des données sur la même ligne. Et j'aimerais qu'il fasse 2 choses:

Tout d'abord que lorsque l'on clique sur une des cellules que ça lance un premier formulaire qui demande le nombre d'occurrence. Puis lorsque c'est rempli que ça créé un 2eme formulaire en fonction du nombre d'occurrence ( si 2 occurrences alors Date réponse et date d'envoi x2,ETC..., exemple dans le fichier). puis ensuite que l'occurrence et les dates soit rentré dans le tableau .

Puis dans un second temps lorsque qu'il y a plusieurs occurrences, ça me crée dans le même tableau des lignes sous les occurrences avec les mêmes données que sur la ligne de l'occurrence, (exemple dans le fichier, j'ai une macro pour ça mais elle ne veut pas sélectionner automatiquement la colonne "J" et elle ne copie cole pas la ligne en dessous).

je sais que c'est un peu compliqué à comprendre... Mais la je sèche

10test1.xlsm (21.48 Ko)

Merci beaucoup et bonne journée à vous!

Bonjour,

Le doubleclik ne fonctionne que sur la colonne en Jaune et ouvre deux inpubox

je n'ai pas trop compris ce que vous cherchez à faire

Exemple : 1ier inputbox je mets 2, 2ieme inputbox je mets 15/07/21. Que doit faire le code ?

Cordialement

Bonjour, ce que je cherche à faire:

1 en fonction du nombre d'occurrence dans le premier inputbox, creer un formulaire qui demande le nombre de date en fonction du nombre d'occurrence (le 2eme Inputbox "date" etait un test.

puis ajouter des lignes en dessous de chaque ligne avec des occurrences contenant juste le meme code et les dates rempli par le formulaire (à la suite sur chaque ligne)

J'ai ajouté des infos sur le fichier et j'ai oublié de dire que la colonne des codes est une formule de calcul (une simple recherche)

10test1.xlsm (25.42 Ko)

Merci beaucoup!

1 en fonction du nombre d'occurrence dans le premier inputbox, creer un formulaire qui demande le nombre de date en fonction du nombre d'occurrence (le 2eme Inputbox "date" etait un test.

1. Pourquoi créer un formulaire pour la première inputbox.
En fonction du choix du nombre d'itération dans l'inputbox, on peut ouvrir le formulaire Modif qui vous permet d'entrer les deux dates attendues (réponse et retour) et ce, autant de fois que le nombre d'itération choisi

Exemple : si le nbre d'itération est de 2, on permet d'entrer deux fois les infos de dates dans le formulaire modif

Votre avis ?

2. Par contre au départ votre tableau est toujours identique à celui du dessus ? Car je vois que si vous avez 2 itérations, on insère deux ligne en dessous de la ligne choisie ?

NB : vous auriez aussi pu tout faire avec 3 inputbox je pense. Une pour itération et les deux autres pour les dates

1 Je pense effectivement que c'est une bonne idée

2 Oui il sera identique car je vais faire un historique de donnée, supprimer le tableau et ensuite le refaire en auto.

NB: effectivement mais en auto ?

NB: effectivement mais en auto ?

Oui. dès que vous remplissez une inputbox l'autre s'affiche.
De cette sorte vous n'avez plus besoin de formulaire spécifique

Je vais vous préparer quelque chose. Vous verrez si cela vous convient

Toutefois encore quelques précisions, si vous avez 2 itérations :
- vous devez avoir 3 lignes
- les dates se mettent bien sur les nouvelles lignes créées ?
- Les dates retour et réponse sont bien entrées directement ?

Super merci! Si j'ai deux itérations je veux ajouter 2 lignes et la date 1 va sur "la ligne de base", la date 2 sur la 1ere ligne crée. la deux line créé va me servir à faire un total de la colonne report par code . Je sais pas si c'est tres clair ?

Ok.

Au fait le nom DateJ2 et AIA J2, cela correspond à quelque chose de précis pour vous. Je pensais renommer cela en Date Retour et Date réponse

Oui pas de soucis, Date 1 Date réponse , Date 2 date retour. et j'ai besoin de la date de retour pour la l'occurrence suivante (date reponse 2)

Le nombre d'itération n'est pas prédéfini. D'où je suppose que le code doit aussi ajouter le nbre d'itération dans la colonne J ou cette colonne ne servira à rien dans le futur ?

Oui elle n'est pas prédefini il faut ajouter le nombre dans la colonne J car on doit renseigner la donnée sur le moment

Voici le code que vous pouvez mettre à la place de celui existant

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Target.Column <> 4 or Target.value = "" Then Exit Sub
Cancel = True

Dim DateRetour As String, DateReponse As String, NBRITERATION As String

NBRITERATION = InputBox("Nombre itération avec l'AIA?", "INPUTBOX")
If NBRITERATION = "" Then Exit Sub

For i = 1 To NBRITERATION

DateRetour:
        DateRetour = InputBox("Date Retour occurence " & i & vbCrLf & _
            "Veuillez entrer une date au format dd/mm/yyyy", "Date de retour de l'AIA")

        If DateRetour <> "" And Not IsDate(DateRetour) Then
            MsgBox "Veuillez saisir une date correcte au format dd/mm/yyyy": GoTo DateRetour:
        ElseIf DateRetour = "" Then Exit Sub
        End If

DateReponse:
        DateReponse = InputBox("Date Reponse occurence " & i & vbCrLf & _
            "Veuillez entrer une date au format dd/mm/yyyy", "Date de réponse de l'AIA")

        If DateReponse <> "" And Not IsDate(DateReponse) Then
            MsgBox "Veuillez saisir une date correcte au format dd/mm/yyyy": GoTo DateReponse:
        ElseIf DateReponse = "" Then Exit Sub
        End If

    With Target
        If i = 1 Then .Offset(0, 6) = NBRITERATION
        .Offset(i, 0).EntireRow.Insert
        .Offset(i - 1, 7) = CDate(DateRetour)
        .Offset(i - 1, 8) = CDate(DateReponse)
    End With
Next i

End Sub

Vous pouvez supprimer la macro Insertligneoccurrence que vous aviez en dessous

Le code réaffiche les deux inputbox de date suivant le nombre d'itération choisi.

J'ai ajouté une condition pour qu'il ne se passe rien si vous cliquez dans une cellule vide de la colonne 4. Exemple une itération choisie de 2 suite à un double click en D3 va vous ajouter 2 lignes. D'où D4 et D5 seront vides. Si vous double cliquez dans ces deux cellules vides, il ne se passera rien.

Faites quelques tests et dites moi

C'est super encore merci! mais juste un petit truc, la macro me copie colle le code de la ligne d'en dessous et pas celui de la ligne choisi ?

la macro me copie colle le code de la ligne d'en dessous et pas celui de la ligne choisi

Je n'ai pas compris
Je vous ai expliqué dans mon poste précédent ce que le code effectue si vous cliquez par exemple en D3 en choisissant une itération de 2

Tout fonctionne tres bien (encore merci ) mais j'aimerais que la macro me colle sur les lignes créé, le même code que la ligne ou l'occurrence et les dates sont inscrit en premier (pour faire le lien entre le code et les différentes occurrences. Les occurrences sont pour une meme reference (code)

mais j'aimerais que la macro me colle sur les lignes créé,

Vous parlez de quelle colonne ? la C ? Donc avoir le Code sur chaque ligne créé

Edit : je vois que en aviez parlé précédemment.

Pour ce faire, à la fin du code ajoutez cette ligne juste en dessous de --> .Offset(i, 0).EntireRow.Insert

.Offset(i, -1) = .Offset(0, -1) 'ajout Code sur nouvelle ligne

Parfait c'est ça, mais mon code est sur la colonne A pardon

EN tout cas merci pour votre aide, je donnerais mon aide pour une autre problématique, tres bon forum! merci!

Parfait c'est ça, mais mon code est sur la colonne A pardon

Ah oui là si votre fichier posté ne correspond pas à votre vrai fichier, il faut adapter

Dites moi si je dois faire quelque chose

Cordialement

Mes codes sont dans la colonne A, je sais pas si ça a un imapct pour la macro ? si non, du coup c'est juste modifier la dernière formule de la macro pour Copier coller la colonne A au lieu de la C (oui excusez moi j'ai du faire des modifs entre temps ...)

.Offset(i, -1) = .Offset(0, 1)

Rechercher des sujets similaires à "modifier formulaire fonction nombre rentre formulair"