Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1407 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Petite routine [Excel]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Petite routine [Excel]

n°1811010
chacal gp
Posté le 12-11-2008 à 09:43:25  profilanswer
 

Bonjour,  
 
Dans un document excel, les lignes successives d'une même colonne peuvent présenter ou non les dimensions d'une plaque de matière sous la forme suivante :  
 
1500 X 1000 X 30  
 
Je souhaiterai établir une petite routine permettant de calculer le volume de ces plaques lorsque le format dans la ligne est similaire à celui là.  
 
En français :  
 
Pour i 1:100  
 
Si cells(i,A) contient "X" alors  
 
cells(i,B) doit prendre la valeur 1500  
cells(i,C) doit prendre la valeur 1000  
cells(i,D) doit prendre la valeur 30  
 
cells(i,E) = cells(i,B) x cells(i,C) x cells(i,D)  
 
next i  
 
Pouvez-vous m'aider à mettre cela en place ?  
 
 
merci d'avance
 
 
pour faire simple, les lignes successives sont de ce type :  
 
1500 X 1000 X 30  
500 X 200 X 10  
1500 X 500 X 20  
plaque ep10  
tube PHI50  
500 X 500 X 15  
 
Je veux donc avoir un résultat du type :  
 
1500   1000   30    4.5E7  
500     200    10    1E6  
1500   500     20    1.5E7  
"VIDE"  
"VIDE"  
500    500     15     3.75E6


Message édité par chacal gp le 12-11-2008 à 09:43:57
mood
Publicité
Posté le 12-11-2008 à 09:43:25  profilanswer
 

n°1811015
Ptit loup
Quand c'est flou, y'a un loup
Posté le 12-11-2008 à 09:50:51  profilanswer
 

Voici les fonctions qui vont t'aider :
 
SI(condition, sivrai, sifaux)
CHERCHE(texte_cherché, chaine_source, num_départ) => indique la position d'une chaine de caractère dans une autre
STXT(chaine_source, num_départ, nombre_car) => renvoie une sous-chaine
 
Pour le volume, je pense que tu y arriveras... non ? :)
 
Voilou,... le plus "difficile" finalement reste à fixer la condition pour dire si oui ou non c'est un format "L x l x H"... la recherche de 2 X non contigus me semblent le mieux pour ça)
 
Pour la "colonne", tu étends juste les formules de ta première ligne sur toute ta colonne, et voilà; pas besoin de "boucle" ou qq chose comme ça.


Message édité par Ptit loup le 12-11-2008 à 09:52:07
n°1811249
galopin01
Posté le 12-11-2008 à 17:28:30  profilanswer
 

bonjour,
Une tite macro ?
 
Sub SEP()
For Each o In Selection
v = Split(Trim(o), " X " )
k = UBound(v)
  If k = 2 Then
    For i = 1 To 3
      o.Offset(, i) = v(i - 1)
    Next
  o.Offset(, 4) = v(0) * v(1) * v(2)
  End If
Erase v
Next
End Sub
 
Nota : pour simplifier...  :D  la macro travaille sur la sélection courante (et non pas sur les lignes 1 à 100)  
A+


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Petite routine [Excel]

 

Sujets relatifs
activation de macros dans excel 2007Concatenation de fichiers excel de même format dans une base access
[VB.Net2003-2005+SQL-Access] Commandes et Syntaxes pour travail de BDDDB2 via Excel
Format Champs OLAP dans ExcelCherche projet VBA EXCEL
[C#] Excel : Verification classeur fermé[SQL / Excel] 100 grosses requêtes à faire et VBA ne veut pas
feuille excel -> mysql + adobe indesignPassage de vba excel à vba access
Plus de sujets relatifs à : Petite routine [Excel]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR