Erreur sur Masque de saisie

Bonjour,

Je débute en VBA et je souhaite créer un masque de saisie. J'ai une erreur dans ma formule ci-dessous, je ne la trouve pas ! ( voir ci-dessous). Merci pour votre aide :

Private Sub CommandButton1_Click()

Dim ctrl As Control

Dim colonne As Integer

Dim derligne As Integer

'derligne devient la ligne qui suit la dernière valeur du tableau

derligne = Sheets("SPSH").Range("A50000").End(x1Up).Row + 1

'balaye les control un par un avec le For...Next

For Each ctrl In UserForm1.Controls

'la valeur de "colonne" est égale à la valeur du Tag du controle

colonne = Val(ctrl.Tag)

'si la valeur du Tag>0 l'intersection n° de dernligne et n° de colonne

'est une cellule qui contiendra la valeur "ctrl" cad celle contenu dans le Control

If colonne > 0 Then Sheets("SPSH").Cells(derligne, colonne) = ctrl

'Next : on passe au control suivant

Next

End

End Sub

Bonjour Abng, bonjour le forum,

Difficile de t'aider sans savoir quelle est l'erreur et où elle se situe !...

Ton code semble correct, je l'ai un peu modifié, regarde si ça fonctionne. Sinon pense à être plus précis...

Private Sub CommandButton1_Click()
Dim ctrl As Control
Dim colonne As Integer
Dim derligne As Integer

'derligne devient la ligne qui suit la dernière valeur du tableau
derligne = Sheets("SPSH").Range("A50000").End(x1Up).Row + 1

'balaye les control un par un avec le For...Next
For Each ctrl In UserForm1.Controls
    If ctrl.Tag <> "" Then
        'la valeur de "colonne" est égale à la valeur du Tag du controle
        colonne = CInt(ctrl.Tag)
        'si la valeur du Tag>0 l'intersection n° de dernligne et n° de colonne
        'est une cellule qui contiendra la valeur "ctrl" cad celle contenu dans le Control
        Sheets("SPSH").Cells(derligne, colonne).Value = ctrl.Value
    End If
Next ctrl
End Sub

Bonjour et merci pour ton aide.

Cela ne fonctionne toujours pas.

Le message d'erreur est : Erreur d'exécution '1004', Erreur définie par l'application et par l'objet

Que souhaitez vous comme détail supplémentaire afin de résoudre mon problème ?

Bonjour Abng, bonjour le forum,

Arf ! Je viens juste de télécharger sur mon nosmartphone l'application "Tirage des vers du nez" ! Elle est géniale...

Quelle est la ligne de code qui plante ?!

Voici la ligne qu'il m'indique comme erreur :

derligne = Sheets("SPSH").Range("A50000").End(x1Up).Row + 1

Bonjour Abng, bonjour le forum,

Tu as écrit x1Up au lieu de xlUp. Un "un" à la place d'un "l"...

Super, merci beaucoup.

Il m'indique une autre erreur sur cette ligne :

Sheets("SPSH").Cells(derligne, colonne) = ctrl

Merci pour votre aide

Bonjour Abng, bonjour le forum,

Arf ! Nulle cette application "Tirage des vers du nez"...

Quel est le message ?

Que valent les variables derligne et colonne au moment de l'erreur ?

l'onglet SPSH est-il correctement écrit ? Pas un espace avant ou après à rajouter ?

Abng vraiment fait un effort !...

Merci ThauThème pour l'investissement que tu m'accorde.

Le message d'erreur sur cette ligne est identique au précédent : Erreur d'exécution '1004', Erreur définie par l'application et par l'objet

La partie surligné en jaune est : Sheets("SPSH").Cells(derligne, colonne) = ctrl

Mes connaissances en VBA sont limités et je ne trouve pas la solution

Merci pour ton aide

Bonjour Abng, bonjour le forum,

Sans le fichier difficile de t'aider. Tu n'as pas répondu à mes questions sur la valeur des variables...

Ce qui pourrait causer un plantage sur cette ligne :

• la variable derligne <1 ou supérieure au nombre de lignes de l'application (peux varier en fonction de la version d'Excel)

• la variable colonne <1 ou supérieure au nombre de colonne de l'application (peux varier en fonction de la version d'Excel)

• un contrôle qui n'a pas de propriété [Value] (une label par exemple)

• pour le nom de l'onglet on aurait un autre erreur si il avait été mal orthographié...

J'opterais pour le contrôle qui n'aurait pas de propriété [Value] mais si tu veux une solution il faudra te décider à enfin mettre ton fichier en pièce jointe...

Bonjour ThauThème, bonjour le forum,

Tes explications ne me permette pas de résoudre mon problème (je manque de connaissance en VBA)

Voici le fichier. Merci une nouvelle fois pour ton aide précieuse

Re,

Tu as oublié le fichier...

Bonjour ThauThème, bonjour le forum,

Avec mes excuses !!!!

Re,

Il y a deux choses que je ne comprends pas :

1 - pourquoi une frame avec 12 saisons (de 2015/2016 à 2026/2027) si ces renseignements ne sont pas reportés dans l'onglet SPSH ?

2 - Pourquoi l'État de la Licence (4 états aux choix dans une Frame) qui visiblement doit être reporté dans la colonne A, contient une couleur (ligne 2) alors que je n'ai trouvé aucune Mise en Forme Conditionnelle qui pourrait transformé l'état en couleur ? De plus, comme tu te sers de la colonne A comme référence pour la dernière ligne, si elle est vide tu ne rempliras que la ligne 2 !...

En pièce jointe ton fichier modifié. Tu verras j'ai rajouté un onglet Listes. Garde-le et ne supprime jamais la première ligne de celui-ci. Modifie avec des données correctes (j'ai mis n'importe quoi). Ces données alimenteront automatiquement la ComboBox1 (Statut) et la ComboBox2 (Catégorie).

Maintenant l'Userform tourne sans problème sauf que la saison ne sont pas reportées...

9abng-v01.xlsm (29.88 Ko)

Merci beaucoup ThauThème pour ta réactivité et ta disponibilité

Je viens simplement de commencer la réalisation du tableau et j'ai encore un peu de travail à faire pour obtenir ce que je souhaite.

Peux tu être mon tuteur sur ce projet si j'ai des questions ?

Bonjour Abng, bonjour le forum,

Je reste attentif a ton fil mais je ne peux pas m'engager à être le tuteur de qui que ce soit car il m'arrive d'être indisponible pendant de longues périodes ou, tout simplement, d'avoir la flemme pendant de longues périodes...

Bonjour le Forum,

Je souhaite poursuivre le développement de mon Masque de saisie (voir fichier Abng.v01 plus haut)

0. : Créer un bouton "Nouvelle Saisie" dans le Formulaire de Saisie (alors il Valide la saisie en cours et repart sur un Formulaire de Saisie vierge)

1. : Dans le Formulaire de saisie, "Etat des licences" ne fonctionne pas. Exemple : Active mutation est toujours reporté dans le tableau alors que j'ai sélectionné Active ou Non active ou En cours d'Actualisation. Pourquoi ? Comment régler le problème ?

2. Comment faire pour : quand je clic sur un Nom dans le tableur, il ouvre son masque de saisie (avec les informations de ce nom remplient dans le Formulaire de Saisie : l'adresse est affiché, les commentaire...)

2.1 Quand le masque de saisie d'un Nom s'ouvre, si le Nom, Prénom et la date n'est pas modifié alors il ne créer pas une nouvelle ligne quand je clic sur "Valider la saisie" mais il corrige uniquement les paramètres modifiés dans le Formulaire de saisie

2.2 Quand le Formulaire de saisie d'un Nom s'ouvre, dans "Etat des licences" si je sélectionne "Non active" puis je clic sur "Valider la saisie" : alors la ligne correspondant au Nom, Prénom, Date de Naissance... est supprimé de l'onglet SPSH et apparait dans un nouvelle onglet que j'intitulerai HISTORIQUE. Et idem dans l'autre sens !

J'espère que mes explications sont suffisantes

Merci par avance pour votre aide

Rechercher des sujets similaires à "erreur masque saisie"