Retour d'un message d'erreur

Je suis débutant en VBA

Bonjour,

Trois jours sans parvenir à trouver monerreur.

j'ai écris:

'Procédure permettant d'ajouter un nouvel enregistrement dans la base de données
Private Sub btnAjout_Click()
Sheets("Patiente").Activate
Range("A1").Select
'Nombre de cellules non vides de la colonne 1
nblignes = WorksheetFunction.CountA(Range("A:A"))
'Première cellule vide dans la colonne 1 en partant du bas plus 1
ligne = nblignes
'Affiche la date du jour
jour = Date
'Ajout des données
ActiveCell.Offset(ligne, 0).Value = nblignes
ActiveCell.Offset(ligne, 1).Value = UCase(txtNom)

Il ajoute bien une ligne dans mon tableau, mais indique :

image

La ligne ajouter comporte alors le bon numéro, mais la suite n'est pas enregistré.

Qui peux me dire où je commets une erreur.

Merci

Bonjour,

Un fichier serait idéal

Sinon peut être ceci :

Private Sub btnAjout_Click()

Dim ligne As Integer
With Sheets("Patiente")
    'Première cellule vide dans la colonne 1 en partant du bas plus 1
    ligne = .Range("A" & Rows.Count).End(xlUp).Row
    'Affiche la date du jour
    jour = Date
    'Ajout des données
    .Range("A" & ligne + 1).Value = ligne + 1
    .Range("B" & ligne + 1).Value = UCase(txtNom)

Cordialement

Je vais essayer

6aide-tab.xlsm (46.34 Ko)

J'ai allégé mon fichier, le voici

Re

C'est juste pour ajouter un patient à la liste donc ?

On peut effacer les données dans le tableau de la feuille Patient ?

oui vous pouvez tout effacer pas de souci les valeurs c'est pour l'exemple

Il faut ajouter un patient en sachant que tous les champs ne seront pas remplis

Ceux remplis sont : nom prénom adresse cp ville mobile

J'ai fait l'essai mais j'ai le même problème

La colonne num me servait pour être sur d'avoir la bonne dernière ligne rempli, si pas utile cette colonne peut être supprimé

Pout info si j'écris ligne=ligne+1 plus de souci la ligne s'écrit correctement seulement elle n'est plus intégré au tableau et ne me permet plus de faire le lien avec les autres onglets.

Le tableau n'est pas à jour malgré l'enregistrement de plusieurs lignes nouvelles, il garde sa dernière comme fin sans prendre en compte les nouvelles saisies

Bonjour tout le monde. Je pense que le pb vient de ces f.... filtres. Si vous faites un Offset(ligne,100) plus de pb.

Pout info si j'écris ligne=ligne+1 plus de souci la ligne s'écrit correctement seulement elle n'est plus intégré au tableau et ne me permet plus de faire le lien avec les autres onglets.

Le tableau n'est pas à jour malgré l'enregistrement de plusieurs lignes nouvelles, il garde sa dernière comme fin sans prendre en compte les nouvelles saisies

Oubliez cette façon de faire, vous avez mis en forme la feuille Patiente en tableaux structurés.

Votre fichier en retour avec les modifications suivante pour l'USF frmSaisiePatiente :

- Supprimé la valeur Rowsource définie pour la combobox1. Evitez cette instruction qui peut poser des soucis quelques fois
- Supprimé la valeur text définie pour la combobox1
- Ajout de la macro Private Sub UserForm_Initialize() qui va initialiser la combobox sur base de la colonne S (nom et prenom)
- le code Private Sub btnAjout_Click() est modifié pour tenir compte des tableaux xtructurés

Je n'ai pas adapté les autres USF mais je peux le faire si vous voulez

Faite quelques tests

10aide-tab.xlsm (43.99 Ko)

J'ai eu ce message

image image

J'ai saisi vos lignes pour comprendre le principe. Je ne pense pas avoir fait d'erreur

Les autres formulaire ajoute bien les lignes dans les tableaux réalisés comme celui de la patiente.

J'en perds mon latin

Merci de votre aide

Que faites vous pour avoir cette erreur ?

Je n'ai pas cela avec le fichier que j'ai posté

J'ai repris votre fichier

J'ai redémarrer mon ordi.

Et ça marche

Merci beaucoup, je vais pouvoir continuer

Je vais en profiter pour analyser votre raisonnement et incorporer les nouvelles instructions que vous avez développées pour savoir les réutiliser dans le futur

Merci encore

OK.

Je vois juste un petit détail que l'on pourrait corriger.

N'hésitez pas reposer une question

Re

Voici ce que vous pouvez modifier dans l'userform Patiente :

1. Remplacer le code Private Sub UserForm_Initialize() par celui ci-dessous

Private Sub UserForm_Initialize()
Call Init
End Sub

2. Ajouter ce code

Sub Init()
On Error Resume Next
With Sheets("Patiente").ListObjects("TPatiente")
    If .ListRows.Count > 1 Then
        ComboBox1.List = .ListColumns(19).DataBodyRange.Value
    Else: ComboBox1.AddItem .DataBodyRange(1, 19).Value
    End If
End With
End Sub

3. Dans le codePrivate Sub btnAjout_Click() , ajoutez ces deux lignes juste entre la ligne MSGBOX et le END SUB

Call Init
Call btnEffacer_Click

Cordialement

Rechercher des sujets similaires à "retour message erreur"