Décalage dans un userform

Bonjour le forum,

Je reviens vers vous et vos connaissances en VBA car j'ai un petit soucis :

Dans un fichier (dont je joint une partie) j'ai un userform pour remplir une table.

En fait j'ai 3 userform dans ce fichier, 2 fonctionne très bien mais le dernier donne un décallage lord de la première insertion via le userform, mais fonctionne correctement lorsqu'on modifie ensuite l'entrée via le même userform.

Dans le fichier joint j'ai supprimé certain sheet non pertinant pour l'aide dont j'ai besoin.

Dans le sheet principal "Request to Furkan" la dernière ligne a été entrée manuellement et l'avant dernière entrée via le formulaire (avec le décallage) puis modifiée via le formulaire (et apparais correctement).

Je ne comprend pas mon erreur, pouvez-vous me guider svp.

Pour info le mdp des sheet

est 1234

Merci

Bonjour Heavy_B

Vous avez 3 USF dans votre classeur, lequel ne fonctionne pas correctement ?

A+

Bonjour JExceL2fr,

le USF3

Re,

Désolé, je viens de voir

Le souci se situe dans l'adresse de votre cellule d'insertion

ws3.Cells(Ligne, 2).Resize(, 10).Value = ctrls 

Un tableau, si ce n'est pas spécifié commence toujours à la dimension 0, donc la ligne est à remplacer par

ws3.Cells(Ligne, 1).Resize(, 10).Value = ctrls 

A+

No problemo,

Je me doutais que c'etais quelque chose comme cela mais cela ne semblais pas logique car maintenant j'ai 2x la ligne 1 dans le code :

        ws3.Cells(Ligne, 1).Value = Date     'ajouter la date
        ws3.Cells(Ligne, 1).Resize(, 10).Value = ctrls     'ajouter les 6 en même temps

une fois pour la date et une fois pour le départ du reste

Re,

Oups désolé, vous pouvez supprimer la ligne en question

En effet "Date IN" est dans "TextBox21" or, ce contrôle existe déjà dans le ARRAY
Lorsque vous inscrivez les valeurs, vous l'inscrivez également.

J'ai l'impression que vous ne connaissez pas le mode débogage, qui peut vous aider dans ce genre de chose

Dans VBAproject vous pouvez insérer des points d'arrêt sur une ligne en appuyant sur F9
Du coup votre code stoppe sur cette ligne, là, vous pouvez analyser ce que vous voulez en insérant un espion express MAJ+F9

Ou dans la fenêtre d'éxécution vous pour saisir des instructions, du style

? Ctls(0)
' ou
Debug.Print Ctrls(0)

Vous aurez ainsi le résultat et la réponse

A+

En effet, jamais utilisé... je suis débutant et je ne connais pas encore tout (en fait je ne connais pas grand chose...)

Pour un exemple concret de ceci, le lien créé me donne une erreur de référence, comment pourrais-je mettre en pratique le "F9" pour voir ou se situe le soucis?

Re,

Avec la souris, tu cliques sur une des premières lignes de la Sub (sauf les Dim) et tu appuies sur F9

Tu lances le codes et il s'arrêtera à l'endroit indiqué par F9, ensuite F8 pour avancer dans le code en pas à pas

Tu pointes le curseur de la souris sur tes variables et tu peux voir ce qu'elles contiennent (sauf les tableaux)

Pour les tableaux, il faut faire ce que j'ai indiqué précédemment

A+

Super info, je viens d'essayer et on sais vraiment faire pas par pas le code, grand merci pour cela.

Par contre je n'ai rien vu qui cloche sur le lien, je ne voudrais pas abuser mais pourriez-vous y jeter un oeil rapide svp

Re,

De quel lien parles-tu ?

Dans la collone C je place le "titre" du sheet lié à la demande ainsi que son hyperlien, mais lorsque je clique dessus il me dit que la référence n'est pas valide

Re,

Ah Ok, si les liens hypertexte ne concernent que des liens internes au classeur

Si tu utilises l'enregistreur de macros, tu obtiens le code suivant

ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
        "'Test 07 t'!A1", TextToDisplay:="Test 07 t"

Donc ton code utilisé n'est pas correcte

wsOverview.Hyperlinks.Add Anchor:=wsOverview.Cells(Ligne, 3), Address:="", SubAddress:=TextBox22.Value & "!A1", TextToDisplay:=TextBox22.Value

Merci de créer un autre post pour une autre question, on s'éloigne du sujet principal

Rechercher des sujets similaires à "decalage userform"