Accueil > Forum > > > > Excel VB VBA multiplier des colonnes selon condition d'une autre colonne
Excel VB VBA multiplier des colonnes selon condition d'une autre colonne
mardi 15 janvier 2008 à 12:01:27 |
Excel VB VBA multiplier des colonnes selon condition d'une autre colonne

xeeel
|
Bonjour,
Je souhaite faire ceci:
[ Lien ]
Explication:
J'ai plusieurs colonnes disons A B C D E F..., A= Acte, B= Coeff, C= Une valeur, D= Acte associé à valeur C, E= Une autre valeur F= un autre acte associé à valeur E
je souhaite que si (A)= "acte1" alors multiplier valeur(C) par Coeff(B) et mettre le résultat dans D
et que si
(A)= "acte2" alors multiplier valeur(D) par Coeff(B) et mettre le résultat dans F
Ceci sur un grand nombre de colonnes et une colonne supplémentaire pour faire le total de la ligne:
Pour le moment je n'arrive pas à associer les valeurs à un acte mais j'ai rempli une colonne complète selon mon principe, voivi le code:
Public Sub Calcul()
Application.Calculation = xlCalculationAutomatic Range("L5").FormulaR1C1 = "=RC[-2]*RC[-1]" Range("L5").AutoFill Destination:=Range("L5", Range("J5").End(xlDown).Offset(0, 2)), Type:=xlFillDefault End Sub
La résultante est que ca multiplie valeur(C) par Coeff(B) et met le résultat dans D mais pas selon les conditions souhaitées.
Si je me suis mal expliqué dites le moi je ferai le nécessaire pour mieux me faire comprendre.
Vous allez me dire qu'il existe la fonction SI(), mais je veux ceci pour une énorme quantité de données et je ne souhaite pas que les utilisateurs puissent modifier quoi que ce soit.
Merci pour votre aide,
Alexis
|
|
mardi 15 janvier 2008 à 12:23:17 |
Re : Excel VB VBA multiplier des colonnes selon condition d'une autre colonne

NHenry
|
Bonjour Et un simple If : If A="Acte1" Then D=C*B elseif A="Acte2" Then F=C*B
End if Ne te convient pas, remplace A, B, C, D et F par les cases correspondantes. Dans Word, j'Excel. (juste pour la citation) VB (6, .NET1&2), C++, C#.Net1 Mon site
|
|
mardi 15 janvier 2008 à 12:36:45 |
Re : Excel VB VBA multiplier des colonnes selon condition d'une autre colonne

xeeel
|
Bonjour NHenry,
A chaque fois que j'ai un souci c'est toi qui me répond. Je suis persuadé que venant de ta part c'est la bonne solution. Je test avec ta manière et je te tiens au courant
|
|
mardi 15 janvier 2008 à 12:56:02 |
Re : Excel VB VBA multiplier des colonnes selon condition d'une autre colonne

xeeel
|
ca ne marche pas.
La syntaxe complète serait dans mon cas:
Public Sub Calcul()
If I = "K" Then L = K * J ElseIf I = "CS" Then N = M * J
End If
End Sub
Mais étant donné que je ne me sers jamais de IF, j'ai du rater un truc...
|
|
mardi 15 janvier 2008 à 12:57:47 |
Re : Excel VB VBA multiplier des colonnes selon condition d'une autre colonne

xeeel
|
Genre déclarer les variables?
|
|
mardi 15 janvier 2008 à 14:12:19 |
Re : Excel VB VBA multiplier des colonnes selon condition d'une autre colonne

NHenry
|
Bonjour Sur Excel, je voulais dire Remplacer A, B, C, ... par l'utilisation de l'objet Range ou Cells : If Range("A2").Value="Acte1" Then Range("D2").Value=Range("C2").Value*Range("B2").Value Range("F2").Value=0 elseIf Range("A2").Value="Acte2" Then Range("F2").Value=Range("C2").Value*Range("B2").Value
Range("D2").Value=0
end if Bon, tu as aussi : Range("...").Offset(...) Cells(y,x) : x et y de base 1 Dans Word, j'Excel. (juste pour la citation) VB (6, .NET1&2), C++, C#.Net1 Mon site
|
|
mardi 15 janvier 2008 à 15:11:07 |
Re : Excel VB VBA multiplier des colonnes selon condition d'une autre colonne

xeeel
|
Ton code marche pour la première ligne pas pour toutes les colonnes..
Je vais test un truc, sinon si tu sais selectionner les colonnes pour que les cellules se multiplient entre elles?
|
|
mardi 15 janvier 2008 à 15:29:12 |
Re : Excel VB VBA multiplier des colonnes selon condition d'une autre colonne

NHenry
|
Bonjour Comme je te l'ais dis, utilise Range("...").Offset(...) pour changer de cellule par rapport à une autre (regarde dans l'aide VBA). Dans Word, j'Excel. (juste pour la citation) VB (6, .NET1&2), C++, C#.Net1 Mon site
|
|
mardi 15 janvier 2008 à 15:33:20 |
Re : Excel VB VBA multiplier des colonnes selon condition d'une autre colonne

xeeel
|
tu peux m'expliquer le .offset
car je l'ai testé mais bon...
Désolé de t'importuner de la sorte mais quand ca veut pas ca veut pas.
Je veux juste qui me fasse le calcul de ligne 5 a 1000 :
If Range("A5:1000").Value="Acte1" Then Range("D5:1000").Value=Range("C5:1000").Value*Range("B5:1000").Value Range("F5:1000").Value=0
Pour sélectionner ce n'est pas comme ca? plutot rows ou colomns("D")....?
Merci
|
|
mardi 15 janvier 2008 à 15:51:38 |
Re : Excel VB VBA multiplier des colonnes selon condition d'une autre colonne

NHenry
|
Réponse acceptée !
Bonjour Dim i as long For i=5 to 1000 If Range("A5").Offset(i-1,0).Value="Acte1" Then Range("D 5").Offset(i-1,0).Value=Range("C 5").Offset(i-1,0).Value*Range(" B5").Offset(i-1,0).Value Range(" F5").Offset(i-1,0) .Value=0 ... Next i Cette boucle risque de prendre un peu de temps, mais elle fonctionne. Dans Word, j'Excel. (juste pour la citation) VB (6, .NET1&2), C++, C#.Net1 Mon site
|
|
Cette discussion est classée dans : valeur, colonne, colonnes, multiplier, acte
Répondre à ce message
Sujets en rapport avec ce message
Listview => recuperer la valeur d'une colonne ?? [ par jcharles ]
J'ai une listview avec 6 colonnes.J'arrive a recuperer sur une ligne sélectionné, la valeur du champ de la premiere colonne:Var1= ListView1.SelectedIt
Pb Excel : extration de la dernière valeur d'une colonne [ par enola ]
Bonjour,Comment extraire la dernière valeur d'une colonne sachant que cette colonne est évolutive pour l'incorporer dans une formule situé dans une au
Colonnes du DATAGRID en couleur [ par pepeveve ]
J'aimerai pouvoir inserer une couleur de font dans les differentes colonnes de mon datagridpar exemple:1ere colonne en vert2eme colonne en rougej'ai
Textbox à plusieur colonne??? [ par marzocchi ]
Bonjour,je voudrais savoir comment faire un textbox ou listbox, peu importe lequel qui me permettrait d'afficher sur 2 colonnes a l'intérieur de la fe
Textbox à plusieur colonne??? [ par marzocchi ]
Bonjour,je voudrais savoir comment faire un textbox ou listbox, peu importe lequel qui me permettrait d'afficher sur 2 colonnes a l'intérieur de la fe
Sélection de colonnes sous Excell [ par Arnoconection ]
Bonjour à tous!je souhaite coller un certain nombre de cellules dans une feuille, mais à la suite des données. Je récupère le numéro de la première co
colonne ds listview [ par joflo ]
si quelqu'un peut m'aider mercij'utilise une listview avec entête de colonne, comment empécher le redimentionnement des colonnes avec la souri? tout
Recuperer valeur dans combo a 2 colonnes [ par pepe013 ]
pépéSalut !J'ai un combo a deux colonnes qui contient le nom et le prenom d'une personne.quand je selection une personne dans mon combo. La valeur du
LISTWIEW ET SELECTION [ par FloFlo78 ]
Bonjour,j'utilise la listview mon mode de sélection se fait par ligne mais je n'arrive pas à récupérer la valeur de la 2ème colonne de la ligne sélect
ADOX - problème valeur par defaut + postion de la colonne [ par luna1704 ]
Bonjour !je sais qu'en DAO il existé une propriétée "ordinalposition" qui permettait de savoir la position de la colonne dans la table en existe t t i
Livres en rapport
|
Derniers Blogs
PARUTION DE MON LIVRE SUR WPF 4PARUTION DE MON LIVRE SUR WPF 4 par odewit
La 2e édition de mon livre sur WPF sort aujourd'hui en version numérique et lundi en version papier :-)
L'ouvrage présente de façon approfondie les fonctionnalités de WPF 4 : graphisme 2D et 3D, animation, multimédia, interfaces utilisateur, databind...
Cliquez pour lire la suite de l'article par odewit EDM : COMMENT UTILISER L'HORIZONTAL ENTITY SPLITTINGEDM : COMMENT UTILISER L'HORIZONTAL ENTITY SPLITTING par Matthieu MEZIL
Une des raisons pour lesquelles j'adore l'Entity Framework est la puissance de son mapping. Beaucoup de développeurs pour ne pas dire la plus part n'en n'ont pas conscience. Pour rappel, j'ai réalisé des videos (en anglais) sur le mapping . Certains scena...
Cliquez pour lire la suite de l'article par Matthieu MEZIL [WP7DEV][REACTIVE] RENDRE LES REACTIVE EXTENSIONS PLUS STABLES[WP7DEV][REACTIVE] RENDRE LES REACTIVE EXTENSIONS PLUS STABLES par jay
Lorsque l'on développe des applications .NET, les exceptions non gérées dans des threads ont le désagréable effet de terminer le processus courant.
Dans l'exemple suivant.......(read more) ...
Cliquez pour lire la suite de l'article par jay WINDBG / SOS / PSSCOR2 : FAILED TO LOAD DATA ACCESS DLL (MSCORDACWKS)WINDBG / SOS / PSSCOR2 : FAILED TO LOAD DATA ACCESS DLL (MSCORDACWKS) par coq
Ceux d'entre nous qui analysent des dumps d'applications .NET (notamment ceux créés via WER après un crash) en dehors de l'environnement initial ont probablement tous été confrontés au moins une fois au message suivant, à la saisie d'une commande SOS ...
Cliquez pour lire la suite de l'article par coq
Forum
RE : WEBBROWSERRE : WEBBROWSER par Renfield
Cliquez pour lire la suite par Renfield
Logiciels
Mozilla FireFox (4.0 béta 5)MOZILLA FIREFOX (4.0 BéTA 5)Firefox 4.0 béta 5
L'une des nouveautés visibles les plus attendues réside sans doute dans l'a... Cliquez pour télécharger Mozilla FireFox Mozilla Firefox (3.6.9)MOZILLA FIREFOX (3.6.9)Firefox 3.6.9 corrige les problèmes suivants :
* Introduced support for the X-FRAME-OPTION... Cliquez pour télécharger Mozilla Firefox Safari (5.0.2)SAFARI (5.0.2)Le navigateur d’Apple a lui aussi été mis à jour, aussi bien dans sa mouture Windows que ce... Cliquez pour télécharger Safari ThunderBird (3.1.3)THUNDERBIRD (3.1.3)Le client de messagerie Mozilla Thunderbird 3 est plus puissant que jamais. Il est maintenant enc... Cliquez pour télécharger ThunderBird Office Web Apps (2010)OFFICE WEB APPS (2010)Office Web Apps
Étendez votre expérience Office au Web
Que vous soyez au bureau, à la maison... Cliquez pour télécharger Office Web Apps
|