Tableau avec remplissage automatique

Bonjour,

Je cherche à créer un tableau de ce type où le nom de l'échantillon est rentré via un inputBox avec une question pour savoir si il s'agit d'une chimie réduite (code joint).

capture d ecran 2025 03 13 a 18 17 48

Mais j'ai plusieurs problèmes :

- Lorsque je clique sur "nouvel échantillon", je voudrais que l'échantillon soit mis sur la première ligne vide et pas forcément sur la ligne 7

- Je ne sais pas faire fonctionner le bouton "Annuler" de la InputBox : j'ai mis la condition du nombre d'échantillon pour que le programme s'arrête mais il y a sûrement plus simple... J'aimerais que lorsque j'appuie sur annuler la demande du numéro d'échantillon parte et ne pas avoir le message de chimie réduite ou non

Voilà mon code:

Private Sub Nouvel_echantillon_Click()

Dim Nom As String

Dim Line As Integer, Nbsample As String, NB As String

Dim reponse As Integer

Nbsample = Range("C2").Value

NB = 1

Line = 7

While NB <> (Nbsample + 1):

Do

Nom = Application.InputBox("Nom de l'échantilon", , , , , , , 2)

reponse = MsgBox("Chimie réduite ?", vbYesNo + vbQuestion, "Choix")

Loop Until (Nom Like "*")

NB = NB + 1

Cells(Line, 2).Value = Dateanalyse

Cells(Line, 3).Value = Nom

If reponse = vbYes Then

Cells(Line, 9).Interior.Color = RGB(191, 191, 191)

Cells(Line, 11).Interior.Color = RGB(191, 191, 191)

Cells(Line, 12).Interior.Color = RGB(191, 191, 191)

Cells(Line, 13).Interior.Color = RGB(191, 191, 191)

End If

Line = Line + 1

Wend

End Sub

Je pense qu'il y plusieurs améliorations à apporter à mon code pour que ce soit plus simple : je suis ouverte aux propositions ! Merci beaucoup

Bonjour et bienvenu sur le forum

Quelle version d'excel

Mac ou windows

1 fichier est TOUJOURS le bienvenu

A+ François

Merci !

Je ne connais pas la version (je voudrais utiliser ce fichier à mon travail) mais c'est sous windows

Le voici, merci !

Sarah

11chimie-bcv-64.xlsm (24.49 Ko)

Bonjour et bienvenue sur ce forum,

Merci de mettre votre version excel dans le profil de votre compte. Avec Français on n'est pas avancé...
Précisez aussi si vous êtes sous excel MAC.

Crdlt

EDIT: oups, je n'avais pas rafraichi... et donc pas vu la réponse de Fanfan38 et votre fichier.... désolé

D'accord j'essayerais demain merci!

Est-ce que vous auriez un code pour faire fonctionner le bouton annuler s'il vous plait ?

re

Est-ce que vous auriez un code pour faire fonctionner le bouton annuler s'il vous plait ?

Ce que vous devez préciser au sujet du bouton Annuler dans l'inputbox, c'est ce que le code doit faire dans les 4 cas ci-dessous
- vous cliquez sur OK et vous n'avez pas mis de nom
- vous cliquez sur OK après avoir mis un nom
- vous cliquez sur Annuler sans avoir mis de nom
- vous cliquez sur Annuler en ayant mis un nom

Ah d'accord merci !

Bonjour

Ci joint ma solution

Mais si j'ai bien compris c'est pour une entreprise....

Pouvez vous utiliser des macros?

14chimie-bcv-64.xlsm (24.39 Ko)

A+ François

Bonjour,

Oui c’est pour une entreprise mais je peux utiliser les macro !

Merci beaucoup, je regarderai en arrivant sur mon PC du boulot.

Re

Comme je vous ai adressé une demande de précision j'ai un peu pensé à une solution sans attendre votre retour.

Bien que Fanfan38 vous a donné une proposition, voici tout de même votre code modifié dans lequel j'ai laissé une partie de ce que vous aviez posté :

Sub SaisirEchantillon()
Dim Nom As String
Dim Line As Integer, Nbsample As String, NB As String
Dim reponse As Integer

Nbsample = Range("C2").Value
NB = 1

While NB < Nbsample + 1
    Nom = InputBox("Veuillez attribuer un Nom à l'échantillon", "Nom échantillon")

    If Nom = vbNullString Then 'cas annuler ou nom manquant
        MsgBox "Vous n'avez pas mentionné de nom ou vous avez annulé", , "Erreur ou annulation": Exit Sub

    Else:
        Line = Range("C" & Rows.Count).End(xlUp).Row + 1
        If Line = 6 Then Line = 7
        Cells(Line, 2).Value = Dateanalyse
        Cells(Line, 3).Value = Nom

        If MsgBox("Chimie réduite ?", vbYesNo + vbQuestion, "Choix") = vbYes Then
            Range("I" & Line).Interior.Color = RGB(191, 191, 191)
            Range("K" & Line & ":M" & Line).Interior.Color = RGB(191, 191, 191)
        End If

        NB = NB + 1
    End If
Wend
End Sub

Le code affiche une Inputbox qui vous demande le nom de l'échantillon
1. Si vous ne mettez pas de nom ou que vous annulez, il vous affiche un message et sort de la macro sans impacter votre tableau
2. Si vous mettez un nom et que vous annulez, même cas qu'au point 1
3. Si vous mettez un nom :
- vous cliquez sur OK le code remplit le tableau en colonne 2 et 3, puis vous affiche le message concernant la chimie réduite. Si vous confirmez "Chimie réduite", le code complète le tableau.
- Si vous cliquez sur NON, le code continue

Vu que vous avez avez une boucle While Wend, les points 1 à 3 se répète pour chaque nouvelle entrée.

NB : pensez à remplacer Français par votre version excel....

Pour cloturer le fil, c'est comme ceci

Crdlt

Merci beaucoup pour vos retours, j'ai réussi à obtenir les résultats que je souhaitais !

Bonne journée et bon week-end à tous.

Rechercher des sujets similaires à "tableau remplissage automatique"