Débutante en vba excel Help!!!

Résolu/Fermé
titepestounette Messages postés 23 Date d'inscription lundi 23 novembre 2009 Statut Membre Dernière intervention 26 novembre 2009 - 23 nov. 2009 à 18:26
goomis95 Messages postés 39 Date d'inscription mardi 3 novembre 2009 Statut Membre Dernière intervention 3 décembre 2009 - 26 nov. 2009 à 17:39
Bonjour,
je débute avec excel vba et je cherche quelque chose que pour vous dois être facile mais bon moi je cherche déjà depuis un moment et je ny arrive pas aidez moi svppp

Private Sub CommandButton1_Click()
If OptionButton1.Value = True Then
Sheets("soumission").Select
Range("h8").Value = "197"
Range("B10").Value = "6"
Range("d10").Value = "12"
Range("G37").Value = je veux que la feuil1 cellule g37 = feuil2 cellule s249

merci de votre aide

nina
A voir également:

23 réponses

Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
23 nov. 2009 à 19:09
Salut,

regardes ce code et change le nom de tes feuilles

Private Sub CommandButton1_Click()
Sheets("Feuil2").[H8] = "197"
Sheets("Feuil2").[B10] = "6"
Sheets("Feuil2").[D10] = "12"

Sheets("Feuil1").[G37] = Sheets("Feuil3").[S5]

End Sub
0
titepestounette Messages postés 23 Date d'inscription lundi 23 novembre 2009 Statut Membre Dernière intervention 26 novembre 2009
23 nov. 2009 à 19:21
wowwwwww merci ca fonctionne à la perfection

juste une autre petite question et ensuite je vous laisse à vos ocuppation si je veux faire une addition c'est la même chose je m'explique
je selectionne mon bouton option et je clic sur le bouton clic et je veux que

Sheets("Feuil1").[G37] = Sheets("Feuil3").[S5] (mais + 155)

comment je traduit ca

merci encore je galère depuis ce matin pour trouver

nina
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
23 nov. 2009 à 19:55
Re,

Tout simplement, tu rajoutes à ta ligne l'addition

Sheets("Feuil1").[G37] = Sheets("Feuil3").[S5] + 155
0
titepestounette Messages postés 23 Date d'inscription lundi 23 novembre 2009 Statut Membre Dernière intervention 26 novembre 2009
24 nov. 2009 à 16:21
Bonjour Mike

Je me permet de revenir vers toi pour te demander si il n'y as pas plus simple que ce que je fait présentement.

voici un bout de code

Private Sub CommandButton1_Click()
If OptionButton1 = True Then
End If
If Jaguar("optionbutton1") = True Then
Sheets("prix").[G37] = Sheets("couleur").[S249] + Sheets("couleur").[y249]
End If
If OptionButton2 = True Then
End If
If Jaguar("optionbutton1") = True Then
Sheets("prix").[G37] = Sheets("couleur").[S249] + Sheets("couleur").[AB249]
End If

voila et ca continue comme ca

à savoir que juste pour ce userform jai 20 bouton option et que dans jaguar jai 20 bouton option et que j'ai encore plus de 20 userform avec 20 bouton option à venir.

J'imagine qu'un autre code que je ne connais pas doit convenir.... Si je te demande c'est pour apprendre les possibilités puisque ce code fonctionne.

Merci et bonne soirée.

Nina
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
goomis95 Messages postés 39 Date d'inscription mardi 3 novembre 2009 Statut Membre Dernière intervention 3 décembre 2009
24 nov. 2009 à 17:01
Private Sub CommandButton1_Click()
If OptionButton1 = True Then
End If
If Jaguar("optionbutton1") = True Then
Sheets("prix").[G37] = Sheets("couleur").[S249] + Sheets("couleur").[y249]
End If
If OptionButton2 = True Then
End If
If Jaguar("optionbutton1") = True Then
Sheets("prix").[G37] = Sheets("couleur").[S249] + Sheets("couleur").[AB249]
End If

Je ne saisis pas tout de ce que tu veux faire a part attribuer a une cellule la valeur d'une autre cellule situé sur une autre feuille et additionner deux cellule pour mettre le résultat de l'addition dans une cellule de l'autre feuille mais est-ce necessaire les :
If OptionButton2 = True Then
End If
?

Vu que si optionbutton2 = false ba cela revient il se passe rien et dans ton SI si optionbutton2 = true = end if alors ne rien mettre revient au même.

Cela revient au même de ne rien mettre mais déjà ton code sera plus clair car il y aura moins de ligne.

D'apres ce que j'ai compris tu voudrais un code plus simple qui réalise ce que tu demande je vais essayer de t'en proposer un d'apres ce que j'ai compris :


Private Sub CommandButton1_Click()

'si optionbutton = vrai alors
If OptionButton1 = True Then
'on rentre dans le si et si le bouton jaguar = vrai alors
If Jaguar("optionbutton1") = True Then
'on prend la cellule G37 de la feuille prix égale à cellule s249 + cellule y249 de la feuille couleur
Sheets("prix").[G37] = Sheets("couleur").[S249] + Sheets("couleur").[y249]
end if
End If

Cela te convient ?

En attenant A+
0
titepestounette Messages postés 23 Date d'inscription lundi 23 novembre 2009 Statut Membre Dernière intervention 26 novembre 2009
24 nov. 2009 à 17:32
BONJOUR GOOMIS

oui c'est exactement ca, ce que je comprend pas c'est que tu me dit qui se passe rien, pourtant mon code fonctionne ???

et si je comprend bien mon code est bon mais je peux enlever le end if entre

If OptionButton1 = True Then
End If
If Jaguar("optionbutton1") = True Then

Merci

Nina
0
goomis95 Messages postés 39 Date d'inscription mardi 3 novembre 2009 Statut Membre Dernière intervention 3 décembre 2009
24 nov. 2009 à 17:58
Salut Nina,

Ce que je dis en fait c'est que si tu fais :

If OptionButton2 = True Then
End If

Cela ne sert a rien, même si cela ne change rien au fait que ton code fonctionne.
En realité , ce que cette ligne fait c'est :

Si optionbutton = vraie alors
Fin Si

J'espere que tu comprend pourquoi cela ne change rien au final :)
C'est comme si tu faisais

Si optionbutton = faux alors
Fin si

Tu rentres dans la boucle pour y ressortir juste après ( il n'y a pas donc pas d'execution d'une ligne ou plusieurs )
Ne pas rentrer dans la boucle revient au même c'est ca que je dis.


Et d'apres ce que j'ai compris comme je le dis au-dessus toi c'est pas vraiment ca en fait que tu veux

Si optionbutton = vraie alors

si jaguar = vraie alors

la tu fait tes addtions ou juste transposition de chiffre/nombre

fin si

fin si

Tu comprends où je veux en venir ?

Si l'optionbutton est vrai alors il entre dans le SI , et une fois rentrer dans le SI , si jaguar est vrai alors tu execute ton instruction tu quitte le 2eme SI puis le premier SI.

Normalement formuler comme ca tu devrais mieux comprendre.

Ce qui veut dire que si l'optionbutton = false alors tu ne rentre pas dans jaguar. Et c'est la ou est l'interet du truc que je t'ai passer. Sinon te contenter de :

Private Sub CommandButton1_Click()
If Jaguar("optionbutton1") = True Then
Sheets("prix").[G37] = Sheets("couleur").[S249] + Sheets("couleur").[y249]
End If
If Jaguar("optionbutton1") = True Then
Sheets("prix").[G37] = Sheets("couleur").[S249] + Sheets("couleur").[AB249]
End If

est largement suffisant, mais a ce moment la les boutton jaguar = vraie execute leur code meme si optionbutton1 = false.

Voiloo j'espere avoir bien détaillé. SI tu as besoin d'aide demande.

A+
0
titepestounette Messages postés 23 Date d'inscription lundi 23 novembre 2009 Statut Membre Dernière intervention 26 novembre 2009
24 nov. 2009 à 18:43
ok pour bien comprendre voici une autre mise en situation exemple :

si checkbox 1 est coché je veux en feuilvba en B3 = feuilprix C48
et si check box 2 est coché je veux en feuilvba en B4 = feuilprix C49*2

donc si je traduit en VBA ca donnerais

Private Sub CommandButton1_Click()
If CheckBox1.Value = True Then
Sheets("vba").[B3] = Sheets("prix").[C48]
end if
If CheckBox2.Value = True Then
Sheets("vba").[B43] = Sheets("prix").[C49] * 2
end if
End Sub

est ce bon ??? et si je veux que se soit cumulatif (je m'explique) si la case 1 est coché = feuilprix c48 et si la case 2 est coché également je veux feuilprix c49*2+ la case 1 que j'ai coché soit feuilprix c48

wow je croyais jamais que j'osserais essayer de faire de la programmation, si ont peut dire que c'est de la programation hihi

Nina
0
goomis95 Messages postés 39 Date d'inscription mardi 3 novembre 2009 Statut Membre Dernière intervention 3 décembre 2009
25 nov. 2009 à 13:51
De ce que je vois normalement oui c'est ca.

Tu vois c'est pas dur de faire des petits programmes :). Même 10 lignes de codes restent de la programmation ... moi j'ai bien commencer sur mon fichier avec un truc d'une vingtaine de lignes en y connaissant rien et apprenant sur le net et en 10jours je me retrouve avec plus de 1700 lignes de codes pour le moment et c'est pas fini lol. On est tous passer par la ( ne pas s'en croire capable ou pas dans ce langage ) hihi.

ps : tu as testé ton exemple ?

GooM
0
titepestounette Messages postés 23 Date d'inscription lundi 23 novembre 2009 Statut Membre Dernière intervention 26 novembre 2009
25 nov. 2009 à 14:11
oui j'ai testé et tout fonctionne très bien même que je suis pas mal plus loin maintenant, par contre la je cherche a faire un code qui inscrit la date de la journée en cellule h3 et en bas de la page en H31 la date de la journée + 30 jours...........

je vais continuer de chercher mais si jamais tu aurais une idée.........

je prend lolll

merci pour ton aide précieuse.... et bonne journée

Nina
0
goomis95 Messages postés 39 Date d'inscription mardi 3 novembre 2009 Statut Membre Dernière intervention 3 décembre 2009
25 nov. 2009 à 15:16
Je pense avoir trouver une solution, je suppose que tu veux que la date se fasse automatiquement.

Pour ca il faut mettre

=aujourdhui() dans la cellule voulu ici en H3.

Pour incrémenter la date de 30 jours j'ai regarder et cela est très simple.
2 solutions : soit tu utilises comme référence la fonction indiquer plus haut soit ta cellule ce qui revient au même.

Donc en cellule H31 ( je crois que c'est cette cellule où tu veux afficher la date actuelle plus 30 jours )

Dans ce cas tu rempli la case H31 de cette façon :
=H3 + 30

OU

=aujourdhui() + 30

Voili voiloo

GooM
0
titepestounette Messages postés 23 Date d'inscription lundi 23 novembre 2009 Statut Membre Dernière intervention 26 novembre 2009
25 nov. 2009 à 17:07
Wow c'etait simple je cherchais beaucoup trop loin.....

Ok je demands ton aide encore une fois et jespère que j'abuse pas trop lollll

Je vais essayer d'expliquer en étant clair ( Essayer ) loll

Dans un userform jai des checkbox, si je sélectionne le checkbox je veux que A1 = le texte du checkbox
Pour l'instant ca vas bien, ensuite si le checkbox2 et Seulement ce checkbox est sélectionné je veux la même chose en A1
Voila ou est mon problème
si les 2 sont sélectionné je veux que le premier soit en A1 et le 2ieme checkbox en b1, je sais tu vas me dire, mais pourquoi ne pas attribuer directement le checkbox2 en B1, le problème est que j'ai 20 checkbox comme ca et que j'ai seulement 10 cellules de disponible dans ma mise en page ( à savoir que seulement 10 checkbox peuvent être choisis en même temps.

ca c'est mon bout de code pour débuter mais je n'arrive pas à formuler si checkbox1 = vrai en A1 si checkbox2 vrai en A1 si checkbox1 et checkbox2 vrai checkbox1 en A1 et checkbox2 en B1 et la je continue comme ca avec les 20 checkbox .......

Dim str As Variant

If checkbox1.Value = True Then
str = checkbox1.Caption
Worksheets(1).Activate
Worksheets(1).Range("A1").Value = str
End If

Jespère que tu vas comprendre mdr.....

merci

Nina
0
goomis95 Messages postés 39 Date d'inscription mardi 3 novembre 2009 Statut Membre Dernière intervention 3 décembre 2009
25 nov. 2009 à 17:51
Pour l'instant je ne peux te donner qu'une piste, le boulot que je fais en ce moment me prend du temps et je ne peux pas te répondre clairement avant demain ( bénévole attitude :) ). Mais en gros si je résume le principe :

If checkbox1.Value = False
then
str = checkbox2.Caption
worksheets(1).activate
worksheets(1).range("A1").Value = str
else if
str = checkbox1.Caption
worksheets(1).activate
worksheets(1).range("A1").Value = str
End if

Normalement tu devrais comprendre ou je veux en venir.

Mais je vais quand meme détaillé on sais jamais :).
SI la checkbox1 = faux
ALORS
str = checkbox 2 .caption ( je suppose que c'est la facon de lui donner la valeur de la check box )
' et oui la numero deux puisque apparement c'est ce que tu voulais pour le gain de place :)
apres on donne a la cellule A1 la valeur de la variable str égal à checkbox2
SINON
str = checkbox 1 .caption
apres on donne a la cellule A1 la valeur de la variable str égal à checkbox1 :)
FIN SI

SI tu as compris le raisonnement pour ce que je viens de te montrer ce qui est je pense ce que tu cherchais ( a moins que j'ai rien pigé avec mon cerveau de poulpe enfariné ^^ ) tu peux le faire pour N checkbox en creussant un peu plus bien sur mais en gardant comme base ( cela ne veut pas dire que cela ne sera pas modifié mais l'idée globale est là ). Si d'ici demain midi, après-midi tu n'as toujours pas trouver la solution dis le moi, et je te ponderai le code ( si j'en ai le temps sinon ce sera après demain :p ).

Voili Voiloo

A+
GooM
0
titepestounette Messages postés 23 Date d'inscription lundi 23 novembre 2009 Statut Membre Dernière intervention 26 novembre 2009
25 nov. 2009 à 18:27
oui c'est le principe mais

Private Sub CommandButton1_Click()
Dim str As Variant
If CheckBox1 = True Then
str = CheckBox1.Caption
Worksheets(1).Activate
Worksheets(1).Range("A1").Value = str
End If
If CheckBox1 = False Then
str = CheckBox2.Caption
Worksheets(1).Activate
Worksheets(1).Range("A1").Value = str
End If
End Sub

si checkbox1 et checkbox 2 = vrai checbox1 caption = a1 et checkbox2 caption = b1

c'est la que je bloque, comment dire en code si checkbox1 = vrai ET checkbox 2 = vrai

bon jattendrai demain si je trouve pas je vais continuer

Merci

Travaille pas trop fort

Nina
0
goomis95 Messages postés 39 Date d'inscription mardi 3 novembre 2009 Statut Membre Dernière intervention 3 décembre 2009
26 nov. 2009 à 12:36
Faire la relation ET n'est pas tres dur :)

If chechbox1 = true AND chexbox2 = true then

:)

A+
goom
0
titepestounette Messages postés 23 Date d'inscription lundi 23 novembre 2009 Statut Membre Dernière intervention 26 novembre 2009
26 nov. 2009 à 13:52
oui c'est ce que j'ai fait mais le code ne fonctionne pas

Private Sub CommandButton1_Click()
Dim str As Variant
If CheckBox1 = True Then
str = Range("A1").Value
CheckBox1 = str
Else
If CheckBox1 = False And CheckBox2 = True Then
str = Range("A1").Value
CheckBox2 = str
Else
If (CheckBox1 = True And CheckBox2 = True) Then
str = Range("A1").Value
CheckBox1 = str
str = Range("A2").Value
CheckBox2 = str
End If
End If
End If
End Sub

merci
0
goomis95 Messages postés 39 Date d'inscription mardi 3 novembre 2009 Statut Membre Dernière intervention 3 décembre 2009
26 nov. 2009 à 14:07
Ca ne te met pas d'erreur au niveau des else ? normalement c'est elseif.
Moi je l'écrirais de cette facon :

Private Sub CommandButton1_Click()

Dim str As Variant

IF CheckBox1 = True THEN
str = Range("A1").Value
CheckBox1 = str
ELSEIF
IF CheckBox1 = False And CheckBox2 = True THEN
str = Range("A1").Value
CheckBox2 = str
ELSEIF
IF (CheckBox1 = True And CheckBox2 = True) THEN
str = Range("A1").Value
CheckBox1 = str
str = Range("A2").Value
CheckBox2 = str
END IF
END IF
END IF
End Sub

Essaie comme ca
0
titepestounette Messages postés 23 Date d'inscription lundi 23 novembre 2009 Statut Membre Dernière intervention 26 novembre 2009
26 nov. 2009 à 14:35
Oui j'ai essayé et j'ai erreur de syntaxe ...........

j'ai essayé sous différente facon j'ai touné et retourné ce code et ..............

faut peut être regarder avec autre chose

Titepestounette
0
goomis95 Messages postés 39 Date d'inscription mardi 3 novembre 2009 Statut Membre Dernière intervention 3 décembre 2009
26 nov. 2009 à 14:48
dans ce cas c'est long et plus chiant mis le faire comme ca :

Private Sub CommandButton1_Click()

Dim str As Variant

IF CheckBox1 = True THEN
str = Range("A1").Value
CheckBox1 = str
ELSEIF
IF CheckBox1 = False THEN
IF CheckBox2 = True THEN
str = Range("A1").Value
CheckBox2 = str
ELSEIF
IF CheckBox1 = True THEN
IF CheckBox2 = True THEN
str = Range("A1").Value
CheckBox1 = str
str = Range("A2").Value
CheckBox2 = str
END IF
END IF
END IF
END IF
END IF
End Sub

Essaie avec ca
0
titepestounette Messages postés 23 Date d'inscription lundi 23 novembre 2009 Statut Membre Dernière intervention 26 novembre 2009
26 nov. 2009 à 14:58
Toujours pas, a chaque fois que je met des else if = erreur de syntaxe
0