begin process at 2012 02 09 23:05:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Divers

 > 

General

 > 

Excel VB VBA multiplier des colonnes selon condition d'une autre colonne


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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

Membre Club Administrateur CodeS-SourceS
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

Membre Club Administrateur CodeS-SourceS
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

Membre Club Administrateur CodeS-SourceS
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

Membre Club Administrateur CodeS-SourceS
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("D5").Offset(i-1,0).Value=Range("C5").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

1 2

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


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,482 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales