Aide VBA excel
Résolu/Fermé
meliani_82
Messages postés
6
Date d'inscription
jeudi 5 avril 2007
Statut
Membre
Dernière intervention
26 juillet 2007
-
22 mai 2007 à 11:48
Cam - 9 juin 2008 à 09:42
Cam - 9 juin 2008 à 09:42
A voir également:
- Aide VBA excel
- Liste déroulante excel - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Mise en forme conditionnelle excel - Guide
- Word et excel gratuit - Guide
8 réponses
xvyr
Messages postés
14
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
22 avril 2009
1
25 mai 2007 à 22:40
25 mai 2007 à 22:40
pour ta macro meliani_82 la reponse de irem marche mais je prefere cette syntaxe qui est plus simple (d'après moi)
--------------------------------------------------------------------
i = 2
While Cells(1, i) <> ""
'définition des variables
nom_boisson = ""
posa = Cells(1, i)
posb = Cells(2, i)
nbla = Len(posa)
nblb = Len(posb)
'récupération des valeurs
prix_unitaire = Mid$(posa, nbla - 1, 1)
nombre_de_boissons = Mid$(posb, 1, 1)
'récupération du nom des boissons
For boucle = 2 To nblb
nom_boisson = nom_boisson & Mid$(posb, boucle, 1)
Next boucle
'affichage
Cells(3, i) = nom_boisson & " : " & prix_unitaire * nombre_de_boissons & "€"
'continue tant qu'il y a d'autres boissons
i = i + 1
Wend
'xvyr - programmeur VBA
'xvyr-du-78@hotmail.fr
--------------------------------------------------------------------
la syntaxe doit etre par exemple ->
champ 1 : coca 3€
champ2 : 3 coca
champ 3 : rien
on peut changer les champ 1 et 2. la marco s'occupe du champ 3
--------------------------------------------------------------------
i = 2
While Cells(1, i) <> ""
'définition des variables
nom_boisson = ""
posa = Cells(1, i)
posb = Cells(2, i)
nbla = Len(posa)
nblb = Len(posb)
'récupération des valeurs
prix_unitaire = Mid$(posa, nbla - 1, 1)
nombre_de_boissons = Mid$(posb, 1, 1)
'récupération du nom des boissons
For boucle = 2 To nblb
nom_boisson = nom_boisson & Mid$(posb, boucle, 1)
Next boucle
'affichage
Cells(3, i) = nom_boisson & " : " & prix_unitaire * nombre_de_boissons & "€"
'continue tant qu'il y a d'autres boissons
i = i + 1
Wend
'xvyr - programmeur VBA
'xvyr-du-78@hotmail.fr
--------------------------------------------------------------------
la syntaxe doit etre par exemple ->
champ 1 : coca 3€
champ2 : 3 coca
champ 3 : rien
on peut changer les champ 1 et 2. la marco s'occupe du champ 3
irem
Messages postés
164
Date d'inscription
mardi 22 mai 2007
Statut
Membre
Dernière intervention
9 octobre 2012
99
22 mai 2007 à 17:13
22 mai 2007 à 17:13
Désolé de répondre à votre question par une autre question mais je voudrais être sur de bien comprendre...
Vous avez une chaine de caracteres donnant le prix du style
"fanta 3€, coca 2€,..."
Vous avez une seconde chaine de caracteres donnant
"3coca, 2 fanta,..."
et le résultat est une troisième chaine de caractères donnant
"3 coca : 6€, 2 fanta : 6€"...
est-ce bien cela?
Irem
Vous avez une chaine de caracteres donnant le prix du style
"fanta 3€, coca 2€,..."
Vous avez une seconde chaine de caracteres donnant
"3coca, 2 fanta,..."
et le résultat est une troisième chaine de caractères donnant
"3 coca : 6€, 2 fanta : 6€"...
est-ce bien cela?
Irem
meliani_82
Messages postés
6
Date d'inscription
jeudi 5 avril 2007
Statut
Membre
Dernière intervention
26 juillet 2007
23 mai 2007 à 00:41
23 mai 2007 à 00:41
re,
Désolé pour le retard, le but et de trouver une macro qui donne le total en troisiéme champs c'est exactement ce que tu as fait.
Je voudrais le faire avec des macros car j'ai besoin de faire autres choses par la suite, je sais que c'est facile avec excel mais je veux le faire avec une macro.
Le but est de faire une application pour mon stage mais je ne peux pas donner le nom des champs donc j'ai mis prix unitaire de la boison et le total.
Merci pour me donner plus de details svp
Désolé pour le retard, le but et de trouver une macro qui donne le total en troisiéme champs c'est exactement ce que tu as fait.
Je voudrais le faire avec des macros car j'ai besoin de faire autres choses par la suite, je sais que c'est facile avec excel mais je veux le faire avec une macro.
Le but est de faire une application pour mon stage mais je ne peux pas donner le nom des champs donc j'ai mis prix unitaire de la boison et le total.
Merci pour me donner plus de details svp
sncf
Messages postés
121
Date d'inscription
lundi 7 juillet 2003
Statut
Membre
Dernière intervention
11 septembre 2011
14
22 mai 2007 à 20:55
22 mai 2007 à 20:55
Bonsoir
Quel est le but de ta macro car honnetement si c'est pour faire le total, une ercopie de formule devrait suffire.
Il faut nous dire un peu plus sur le but final recherché
Quel est le but de ta macro car honnetement si c'est pour faire le total, une ercopie de formule devrait suffire.
Il faut nous dire un peu plus sur le but final recherché
Utilisateur anonyme
22 mai 2007 à 21:07
22 mai 2007 à 21:07
tout a fait d'accord. quel est le but de l'application?
Et puis veux-tu utiliser un formulaire ou pas?
Et puis veux-tu utiliser un formulaire ou pas?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
irem
Messages postés
164
Date d'inscription
mardi 22 mai 2007
Statut
Membre
Dernière intervention
9 octobre 2012
99
23 mai 2007 à 11:08
23 mai 2007 à 11:08
je ferais comme suit :
Sub test()
MsgBox get_Somme("coca 2€;fanta 3€", "2 coca;5 fanta")
End Sub
Function get_Somme(str_valeurs As String, str_choix As String) As String
'on parse les entrées pour faire le total
'entrées : str_valeurs "coca 2€;fanta 3€;..."
' str_choix "3 coca; 2 fanta;..."
'sortie : "coca : 6€;fanta 6€;...."
Const Ct_Csv_Sep = ";" 'separateur du champ csv
Dim Tab_Valeurs, Tab_Choix
Dim My_Valeurs, My_Choix As String
'on vire les espaces et les euros
My_Valeurs = Replace(Trim(Replace(str_valeurs, "€", "")), ":", "")
My_Choix = Replace(Trim(Replace(str_choix, "€", "")), ":", "")
'on splitte l'entrée et les choix
Tab_Valeurs = Split(My_Valeurs, Ct_Csv_Sep, -1, vbTextCompare)
Tab_Choix = Split(My_Choix, Ct_Csv_Sep, -1, vbTextCompare)
'on a ainsi deux tableaux avec les deux strings
Dim My_Result, My_Entree, My_Boisson As String
Dim My_Nombre, My_Prix As Integer
Dim int_I, Int_J, Int_k As Integer
For int_I = 0 To UBound(Tab_Choix)
My_Entree = Tab_Choix(int_I)
Int_k = InStr(1, My_Entree, " ", vbTextCompare)
If Int_k > 1 Then
My_Nombre = Left(My_Entree, Int_k - 1)
My_Boisson = Right(My_Entree, Len(My_Entree) - Int_k)
For Int_J = 0 To UBound(Tab_Valeurs)
If InStr(1, Tab_Valeurs(Int_J), My_Boisson) Then
'on est sur le bon prix
Int_k = InStr(1, Tab_Valeurs(Int_J), " ", vbTextCompare)
My_Result = My_Result & My_Nombre & " " & My_Boisson & _
" : " & CStr(My_Nombre * Right(Tab_Valeurs(Int_J), Len(Tab_Valeurs(Int_J)) - Int_k)) & " €" & Ct_Csv_Sep
End If
Next Int_J
End If
Next int_I
get_Somme = My_Result
End Function
Irem
Sub test()
MsgBox get_Somme("coca 2€;fanta 3€", "2 coca;5 fanta")
End Sub
Function get_Somme(str_valeurs As String, str_choix As String) As String
'on parse les entrées pour faire le total
'entrées : str_valeurs "coca 2€;fanta 3€;..."
' str_choix "3 coca; 2 fanta;..."
'sortie : "coca : 6€;fanta 6€;...."
Const Ct_Csv_Sep = ";" 'separateur du champ csv
Dim Tab_Valeurs, Tab_Choix
Dim My_Valeurs, My_Choix As String
'on vire les espaces et les euros
My_Valeurs = Replace(Trim(Replace(str_valeurs, "€", "")), ":", "")
My_Choix = Replace(Trim(Replace(str_choix, "€", "")), ":", "")
'on splitte l'entrée et les choix
Tab_Valeurs = Split(My_Valeurs, Ct_Csv_Sep, -1, vbTextCompare)
Tab_Choix = Split(My_Choix, Ct_Csv_Sep, -1, vbTextCompare)
'on a ainsi deux tableaux avec les deux strings
Dim My_Result, My_Entree, My_Boisson As String
Dim My_Nombre, My_Prix As Integer
Dim int_I, Int_J, Int_k As Integer
For int_I = 0 To UBound(Tab_Choix)
My_Entree = Tab_Choix(int_I)
Int_k = InStr(1, My_Entree, " ", vbTextCompare)
If Int_k > 1 Then
My_Nombre = Left(My_Entree, Int_k - 1)
My_Boisson = Right(My_Entree, Len(My_Entree) - Int_k)
For Int_J = 0 To UBound(Tab_Valeurs)
If InStr(1, Tab_Valeurs(Int_J), My_Boisson) Then
'on est sur le bon prix
Int_k = InStr(1, Tab_Valeurs(Int_J), " ", vbTextCompare)
My_Result = My_Result & My_Nombre & " " & My_Boisson & _
" : " & CStr(My_Nombre * Right(Tab_Valeurs(Int_J), Len(Tab_Valeurs(Int_J)) - Int_k)) & " €" & Ct_Csv_Sep
End If
Next Int_J
End If
Next int_I
get_Somme = My_Result
End Function
Irem
slt j'ai vu ke tu a l'air de tater le VBA, peux tu donc m'aider stp, j'en ai deja fait mais j'ai oublié:
j'ai calculer une valeur dans VBA, et je voudrais l'afficher ds une cellule cet valeur, peux tu me faire les lignes....ma valeur est un nombre , j'ai tout essayer je vais craquer!!!!
peux tu me dire pour afficher un nombre et une chaine de caractere stp
merci a bientot
j'ai calculer une valeur dans VBA, et je voudrais l'afficher ds une cellule cet valeur, peux tu me faire les lignes....ma valeur est un nombre , j'ai tout essayer je vais craquer!!!!
peux tu me dire pour afficher un nombre et une chaine de caractere stp
merci a bientot
xvyr
Messages postés
14
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
22 avril 2009
1
>
percevalix
25 mai 2007 à 21:41
25 mai 2007 à 21:41
bonjour
par exemple ta valeur est "a" et tu veux la copier dans la cellule 1,1 de la feuille 1
l'aide de VBA utilise ->
Sheets("Feuil1").Select
ActiveCell.FormulaR1C1 = a
j'utilise ->
Sheets("Feuil1").Select
cells(1,1) = a
la ligne sheets("feuil1") n'est utile que pour d'autre feuille, la feuille 1 étant séléctionné par defaut
par exemple ta valeur est "a" et tu veux la copier dans la cellule 1,1 de la feuille 1
l'aide de VBA utilise ->
Sheets("Feuil1").Select
ActiveCell.FormulaR1C1 = a
j'utilise ->
Sheets("Feuil1").Select
cells(1,1) = a
la ligne sheets("feuil1") n'est utile que pour d'autre feuille, la feuille 1 étant séléctionné par defaut
meliani_82
Messages postés
6
Date d'inscription
jeudi 5 avril 2007
Statut
Membre
Dernière intervention
26 juillet 2007
25 mai 2007 à 16:42
25 mai 2007 à 16:42
re,
Super tu assures beaucoup, merci encore
a bientot
Super tu assures beaucoup, merci encore
a bientot
irem
Messages postés
164
Date d'inscription
mardi 22 mai 2007
Statut
Membre
Dernière intervention
9 octobre 2012
99
28 mai 2007 à 06:27
28 mai 2007 à 06:27
En fait tout dépend si tu veux une entrée par ligne ou si tu as directement la ligne complète des tarifs et la ligne complète des commandes (le prog de xvyr est bon dans le premier cas, le mien dans le second).
Par ailleurs, pense à fermer le sujet
Bonne journée
Irem
Par ailleurs, pense à fermer le sujet
Bonne journée
Irem
bonjour a rous
je suis un peu nul en VBA et jaurais besoin daide.
comment je pourrais faire pour atteindre l equation d une trendline et generer un msgbox qui dit si l ordonnee a l origine de ma trendline est positive ou negative ( trendline lineaire).
demandez moi si jai pas ete clair.
merci bcp d avance
je suis un peu nul en VBA et jaurais besoin daide.
comment je pourrais faire pour atteindre l equation d une trendline et generer un msgbox qui dit si l ordonnee a l origine de ma trendline est positive ou negative ( trendline lineaire).
demandez moi si jai pas ete clair.
merci bcp d avance
Bonjour à tous,
je dois effectuer des projets en vba, mais je suis pas très douée, je dois réaliser un convertisseur de monnaies avec au moins 3 monnaies (dont l’euro) accessibles par une boîte combo avec possibilité de rajouter des nouvelles devises (par l’intermédiaire de la feuille excel).
mais également un palindromisateur© avec comme contraintes
Reconnaitre si la chaîne saisie est un palindrome
Le programme doit pouvoir GENERER un palindrome.
Merci beaucoup de votre aide
je dois effectuer des projets en vba, mais je suis pas très douée, je dois réaliser un convertisseur de monnaies avec au moins 3 monnaies (dont l’euro) accessibles par une boîte combo avec possibilité de rajouter des nouvelles devises (par l’intermédiaire de la feuille excel).
mais également un palindromisateur© avec comme contraintes
Reconnaitre si la chaîne saisie est un palindrome
Le programme doit pouvoir GENERER un palindrome.
Merci beaucoup de votre aide