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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  matrices avec classes vba/excel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

matrices avec classes vba/excel

n°1350221
rip324
Posté le 20-04-2006 à 09:20:22  profilanswer
 

j'ai une matrice avec en colonnes les effectifs de salariés (en têtes : effectifs) et en lignes
le nombre de postes informatiques ( en têtes : effectifs de postes)
 
Au milieu soit des vides (on ne possède pas les données)soit des marges aux "intersections"
(par exemple à l'intersection de la colonne "10 salariés" et de la ligne "10 pc" on a 18732.61
 
En fait j'essaye de restructurer la matrice pr que les en têtes deviennent des classes d'effectifs
et des classes de pc.
classes d'effectifs : 0.  1-20.   20-50 etc..
classes de pc : 0. 1-10   10-50   etc...
et les données au milieu suivent, si la colonne est compri ds telle classe et la ligne ds  
telle classe alors on mettra la donnée à l'intersection de ces 2 classes et on  
l'ajoutera à la précèdente s'il y en a une.
 
voici mon programme, lancé avec une matrice de taille quelconque de a1 à c7 par exemple, avec en a les en-têtes lignes et en 1 les en-têtes colonnes  
 

Sub testclass()
 
Dim I As Integer
Range("a2" ).Select
Range("Feuil2!b2:Feuil2!z15" ).ClearContents
 
Do While ActiveCell.Offset(0, I) <> ""
I = 0
cpt = 0
Do While UCase(Range("feuil2!b2" ).Offset(cpt, 0)) <> "" And UCase(Range("feuil2!b2" ).Offset(cpt, 0)) <> UCase(ActiveCell)
 
cpt = cpt + 1
Loop
 
If ActiveCell >= 1 And ActiveCell < 20 Then
    If ActiveCell.Offset(-cpt, I) >= 1 And ActiveCell.Offset(-cpt, I) < 10 Then
    Range("Feuil2!c2" ) = ActiveCell.Offset(0, 1) + Range("Feuil2!c2" )
    Else
    If ActiveCell.Offset(-cpt, I) >= 10 And ActiveCell.Offset(-cpt, I) < 50 Then
    Range("Feuil2!d2" ) = ActiveCell.Offset(0, 1) + Range("Feuil2!d2" )
    Else
    If ActiveCell.Offset(-cpt, I) >= 50 And ActiveCell.Offset(-cpt, I) < 100 Then
    Range("Feuil2!e2" ) = ActiveCell.Offset(0, 1) + Range("Feuil2!e2" )
    Else
    If ActiveCell.Offset(-cpt, I) >= 100 And ActiveCell.Offset(-cpt, I) < 250 Then
    Range("Feuil2!f2" ) = ActiveCell.Offset(0, 1) + Range("Feuil2!f2" )
    Else
    If ActiveCell.Offset(-cpt, I) >= 250 And ActiveCell.Offset(-cpt, I) < 500 Then
    Range("Feuil2!g2" ) = ActiveCell.Offset(0, 1) + Range("Feuil2!g2" )
    Else
    If ActiveCell.Offset(-cpt, I) >= 500 And ActiveCell.Offset(-cpt, I) < 900 Then
    Range("Feuil2!h2" ) = ActiveCell.Offset(0, 1) + Range("Feuil2!h2" )
    Else
    Range("Feuil2!i2" ) = ActiveCell.Offset(0, 1) + Range("Feuil2!i2" )
    End If
    End If
    End If
    End If
    End If
    End If
Else
Range("feuil2!b10" ) = ActiveCell.Offset(0, 1) + Range("Feuil2!b10" )
End If
I = I + 1
Selection.Offset(1, 0).Select
Loop
End Sub

mood
Publicité
Posté le 20-04-2006 à 09:20:22  profilanswer
 


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

  matrices avec classes vba/excel

 

Sujets relatifs
lire des données d'une base de donnée avec excellire un fichier excel à l'aide de perl
Ignorer le rapport d'erreur d'Exceltrouver le path d'un fichier excel
Faire un programme en C ou C++ et l'utiliser sous excel ou Oooou exclusif sur excel
exécuter une macro excel depuis un script perl[Résolu][VBA][EXCEL] Appel par Call plutôt que Run
comment faire macro pour exporter une page excel dans un document wordouvrir le formulaire d'un doc Excel sous VFP
Plus de sujets relatifs à : matrices avec classes vba/excel


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