Tableau VBA cellule vide

Fermé
jimbodu54 Messages postés 4 Date d'inscription jeudi 12 janvier 2012 Statut Membre Dernière intervention 14 janvier 2012 - 12 janv. 2012 à 23:41
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 16 janv. 2012 à 08:34
Bonjour,
je créé une application semblable à un site d'achat avec une navigation entre plusieurs userform chaque userform a des produit diffférent et lorsque je clike sur commander le nom du produit et le prix rentre dans un tableau excel si jappuis deux fois sur commander il rentre dans la première ligne et dans la deuxième grâce à offset(1,0)
jusque la tout va bien.
Seulement mes autre userform sont programmé pareil et si je commande un produit sur la 1 er userform il rentre dans le tableau excel mais si je vais sur une autre userform et que je commande un produit il ne fait pas offset(1,0) et va écraser mon premier produit commander dans mon tableau, alors que je voudrais qu'il se mette à la suite
voici le code d'une de mes userform

Const DebTab = "J7"
Const DebRes = "L7"
Dim Mc As Range

Private Sub Label16_Click()
Mc.Offset(0, 1).Value = "Chemise"
Mc.Offset(0, 2).Value = "10"
Set Mc = Mc.Offset(1, 0)
End Sub

Private Sub UserForm_Initialize()
Set Mc = Sheets("Panier").Range(DebTab)
While Not (IsEmpty(Mc.Value))
Set Mc = Mc.Offset(1, 0)
Wend
End Sub

Si quel qu'un a une idéé sa serais bien gentil car je ne sais pas du tout comment faire merci


4 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
13 janv. 2012 à 12:00
Bonjour,
Ta variable MC est déclarée en tête du module de chaque UserForm. Si tu veux qu'elle soit utilisable dans tous tes UserForms, sans perdre sa valeur après chaque UnLoad, tu dois la déclarer dans un module.
Pour cela, sous VBE, Insertion/Module, et dans ton module tu ne mets qu'une seule ligne :
Public Mc As Range


Mes sources :Pour que la variable soit utilisable dans toutes les macros du projet, il faut utiliser l'instruction Public et la variable doit impérativement être placée en tête d'un module standard.
1
jimbodu54 Messages postés 4 Date d'inscription jeudi 12 janvier 2012 Statut Membre Dernière intervention 14 janvier 2012
13 janv. 2012 à 18:13
Bonjour et merci de ta réponse pijaku
Seulement j'ai insérer un module et tout et sa ne marche toujours pas alors j'ai certainement pas du faire la manie correctement que dois je enlever quand jajoute ce module?
Merci
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
14 janv. 2012 à 15:03
En haut du module de l'userform tu as ceci :
Const DebTab = "J7"
Const DebRes = "L7"
Dim Mc As Range

Private Sub Label16_Click() 
'bla bla bla

Tu dois virer la déclaration de MC soit :
Const DebTab = "J7"
Const DebRes = "L7"

Private Sub Label16_Click() 
'Bla bla

Ensuite, tu insères ton module et en entête de celui ci tu écris :
Public MC As Range
0
jimbodu54 Messages postés 4 Date d'inscription jeudi 12 janvier 2012 Statut Membre Dernière intervention 14 janvier 2012
14 janv. 2012 à 15:22
Rebonjour pijaku j'ai fais la manip mais sa ne marche toujours pas quand j'appuis sur un des bouton commander un message d'erreur apparait voir pièce jointes je sais pas du tout comment faire merci de t'interresais a mon sujet :)
0
jimbodu54 Messages postés 4 Date d'inscription jeudi 12 janvier 2012 Statut Membre Dernière intervention 14 janvier 2012
14 janv. 2012 à 15:26
mince je sais pas comment on fais pour envoyer en pièce jointe
donc le message d'erreur c'est "seuls des commentaire peuvent apparaître après end sub end property ou end fonction " il me dis sa alors que je n'ai rien changer d'autre je ne comprend pas
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
16 janv. 2012 à 08:34
Salu,
Pour nous transmettre un fichier, il faut aller sur https://www.cjoint.com/ , sur ce site, tu créées un lien vers ton fichier, tu copies ce lien et reviens ici le coller dans une réponse.
0