Macro excel en vb :'(

Macro excel en vb :'( - VB/VBA/VBS - Programmation

Marsh Posté le 05-04-2005 à 09:15:38    

Bonjour,  
 
je dispose d'un fichier resultats comme ceci :
 

Citation :

Résultats:...........................Entité A:  
Intitulé........................Code............26013  
ni WC ni salle d'eau .........C291...........2  
ni WC ni salle d'eau avant ...C290..........14  
ni WC ni salle d'eau ens......C289..........18


 
 
je souhaite dans un nouvel onglet copier ces resultats de la facon qui suit :
 

Citation :

Intitulé......ni WC ni salle d'eau .......ni WC ni salle d'eau avant 1915
Code ...............C291............................... C290  
26013 .................0................................. 2  
26016 .................0................................. 1  
26082 .................0......................................1


 
Avec si c'est le même code une somme pour les deux code par intitulé...
 
 
Ca fais un bout de temps que je planche la dessus, mais mes talents en programmation objet et en programmation tout cour sont mediocre alors ... a l'aide .... :fou:  
 
 
Si quelqu'un pouvez me donner un petit coup de pouce ca serait super sympas, merci d'avance MATA...
 
 
 
nb j'ai realiser un programme dans le styke ...mais ca marche po des masse  :??:  
 

Private Sub CommandButton1_Click()
Dim I As Integer
Dim X As Integer
Dim K As Integer
Dim XI As Integer
Dim XJ As Integer
 
 
 
Sheets("Resultats avec extraction" ).Select
 
XI = 1
 
While Sheets("Resultats" ).Cells(1, XI) <> ""
    While Sheets("Resultats" ).Cells(XJ, 2) <> ""
 
                     
                    Sheets("Resultats avec extraction" ).Cells(XI, XJ) = Sheets("Resultats" ).Cells(XJ, XI)
                     
                                         
                    I = 4
                     
                    X = Sheets("Resultats avec extraction" ).Cells(3, 2)
                     
                    While Sheets("Resultats avec extraction" ).Cells(2, I) <> ""
                     
                         
                         
                        If Sheets("Resultats avec extraction" ).Cells(2, I) = X Then
                            While Sheets("Resultats avec extraction" ).Cells(K, I) <> ""
                             
                            Sheets("Resultats avec extraction" ).Cells(K, I) = Sheets("Resultats avec extraction" ).Cells(K, I) + Sheets("Resultats avec extraction" ).Cells(K, I - 1)
                            K = K + 1
                             
                            Wend
                        End If
                     
                    Wend
     
    Wend
Wen
 
End Sub

 
 
 
 
nb² : je sais que c'est faux :D, pour infos ma feuille que je copie ... c'est resultat, et la feuille ou je colle ce que je souhaite, c'est resultat après extraction  :hello:  aidez moi plz  :jap:  :jap:  
 
 
 
 
 
 
 
 
 

Reply

Marsh Posté le 05-04-2005 à 09:15:38   

Reply

Marsh Posté le 05-04-2005 à 09:47:57    

personne n'a une petite idee ? ... tien il manque deja un d a mon Wend ....huhuhu  :wahoo:

Reply

Marsh Posté le 05-04-2005 à 10:24:30    

Tableau croisé dynamique?...


---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!
Reply

Marsh Posté le 05-04-2005 à 10:28:34    

Non c'est juste ecrire le tableau dans l'autre sens, avec des sommes justes pour certaine lignes ....
 
Sinon je n'arrive même pas a faire une simple affectation du style :
 
Sheets("extraction " ).Cells(1, 1) = Sheets("Resultats " ).Cells(2, 1)
 
ca me met indice en deors de la plage :??:

Reply

Marsh Posté le 05-04-2005 à 10:59:23    

j'essaye de modifier mon programe, la j'ai essayer ca ... mais ca marche pas non plus ... je m'embrouille un poil, un coup de main serait le bien venu :gratgrat: :D
 

Const CMAX_XI = 256
Const CMAX_XJ = 256
Private Sub CommandButton1_Click()
 
Dim I As Integer
Dim X As Integer
Dim J As Integer
Dim XI As Long
Dim XJ As Long
 
 
Sheets("extraction" ).Select
     
 
XI = 1
XJ = 2
 
Cells(1, 1) = Sheets("Resultats " ).Cells(2, 1)
Cells(2, 1) = Sheets("Resultats " ).Cells(2, 2)
 
 
 
For I = 2 To Range("B65536" ).End(xlUp).Row
    For J = 2 To Range("B65536" ).End(xlUp).Row
                     
        Cells(1, I) = Sheets("Resultats " ).Cells(I + 1, 1)
         
        Cells(I, J) = Sheets("Resultats " ).Cells(I + 1, J + 1)
     
     
    Next J
Next I
 
End Sub

Reply

Marsh Posté le 05-04-2005 à 11:13:05    

bon ... deja ca m'ecris les données dans la mauvaise feuille :x

Reply

Marsh Posté le 05-04-2005 à 11:40:56    

Bon ... grace a ce programme, j'arrive a ecrire comme je veux, mais le pb est de faire la somme si le code est pareille now :)
 

Private Sub CommandButton1_Click()
 
Dim I As Integer
Dim X As Integer
Dim J As Integer
Dim XI As Long
Dim XJ As Long
 
 
Sheets("extraction" ).Select
     
 
XI = 1
XJ = 2
 
 
For I = 1 To Range("B65536" ).End(xlUp).Row
    For J = 1 To Range("B65536" ).End(xlUp).Row
     
        Sheets("extraction" ).Cells(I, J) = Sheets("Resultats " ).Cells(J + 1, I)
        Sheets("extraction" ).Cells(I, J) = Sheets("Resultats " ).Cells(J + 1, I)
         
    Next J
         
Next I
 
 
 
 
End Sub

Reply

Marsh Posté le 05-04-2005 à 12:56:38    

:) hahaha, j'ai fais ca ... ca a l'air de marcher .... quelqu'un connaitrais t'il les instruction, pour :
 
1 : effacer les cellules d'une feuille avant de la remplir
2 : creer un nouvelle feuille pour chaque variable que je variable que je v

Reply

Marsh Posté le 05-04-2005 à 12:58:05    

:) hahaha, j'ai fais ca ... ca a l'air de marcher .... quelqu'un connaitrais t'il les instruction, pour :
 
1 : effacer les cellules d'une feuille avant de la remplir
2 : creer un nouvelle feuille pour chaque variable que je variable que je variable que je vais traiter avec comme nom le nom de la variable.
 

Private Sub CommandButton1_Click()
 
Dim I As Integer
Dim X As Integer
Dim J As Integer
Dim K As Integer
Dim XI As Long
Dim XJ As Long
 
 
Sheets("extraction" ).Select
     
     
     
 
XI = 2
XJ = 3
 
For I = 1 To Range("B65536" ).End(xlUp).Row
    For J = 1 To Range("B65536" ).End(xlUp).Row
     
        Sheets("extraction" ).Cells(I, J) = Sheets("Resultats " ).Cells(J + 1, I)
        Sheets("extraction" ).Cells(I, J) = Sheets("Resultats " ).Cells(J + 1, I)
       
    Next J
Next I
 
 
 
For I = 3 To Range("B65536" ).End(xlUp).Row
    For J = 3 To Range("B65536" ).End(xlUp).Row
     
        If Sheets("extraction" ).Cells(I, J) = Sheets("extraction" ).Cells(XI, XJ) Then
         
                For K = 3 To Range("B65536" ).End(xlUp).Row
                    Sheets("extraction" ).Cells(I, K) = Sheets("extraction" ).Cells(I, K) + Sheets("extraction" ).Cells(XI, XJ)
                Next K
                 
        End If
    Next J
Next I
 
 
 
 
 
 
 
End Sub


 
 
nb : desoler pour le double message mon doigt a ripper sur la touche tab par deux fois :s

Reply

Marsh Posté le 05-04-2005 à 13:08:21    


Pour effacer les cellules avant de remplir la feuille ^^, j'adore auto-repondre a mes questions ......
 
Sheets("extraction" ).Select
Sheets("extraction" ).Cells.Select
Selection.ClearContents

Reply

Marsh Posté le 05-04-2005 à 13:08:21   

Reply

Marsh Posté le 05-04-2005 à 15:27:35    

mon programme marche tjs po :'(

Reply

Marsh Posté le 06-04-2005 à 08:35:51    

Rhhhaaaa, le must ca serait d'arriver a faire une version simplifier du tableau dynamique d'excel pour l'utilisateur,avec possibilité de modifier les calaculs effectué ... personne sais ou recuperer le programme du tableau dynamique d'excel ?

Reply

Marsh Posté le 06-04-2005 à 08:55:58    

MATAMATA a écrit :

:) hahaha, j'ai fais ca ... ca a l'air de marcher .... quelqu'un connaitrais t'il les instruction, pour :
 
1 : effacer les cellules d'une feuille avant de la remplir
2 : creer un nouvelle feuille pour chaque variable que je v


 

MATAMATA a écrit :

:) hahaha, j'ai fais ca ... ca a l'air de marcher .... quelqu'un connaitrais t'il les instruction, pour :
 
1 : effacer les cellules d'une feuille avant de la remplir
2 : creer un nouvelle feuille pour chaque variable que je variable que je v


 
rassure moi, tu sais te servir du forum j'espère ? tu es au courant qu'on peut éditer un message pour le compléter au lieu d'en rajouter un autre ?


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 06-04-2005 à 09:35:49    

Oui je sais me servir d'un forum.
 

Citation :

nb : desoler pour le double message mon doigt a ripper sur la touche tab par deux fois :s


 
lis tout au lieux de me casser, merci, de plus mes deux posts ne  pose pas la même questions ... l'un et pour appeler l'assistants tableau croisée dynamique via une macro, l'autre et pour creer une macros faisant sensiblement la même chose qu'un tableau croisé a la différence près, que cette macros pourras faire nimporte quel calcul sur les données traités.
 
Après il est vrai que je n'ai qu'a attendre l'éventuel répose de quelqu'un mais bon comme tu vois, je m'occupe puisque j'essaye de resoudre ce problème. ;)
 
 
edit : seule les modos come toi peuvent supprimer leur propre messages , ou les messages inutiles pas les simples utilisateurs ! huhuhu
 
D'ailleur si tu pouvais rouvrir l'autre post, puisque ce n'est pas le même je t'en serais très reconnaissant :jap:


Message édité par MATAMATA le 06-04-2005 à 09:42:48
Reply

Marsh Posté le 06-04-2005 à 10:03:20    

MATAMATA a écrit :

Oui je sais me servir d'un forum.
[...]
edit : seule les modos come toi peuvent supprimer leur propre messages
[...]


en es-tu vraiment certain... [:mlc]

Reply

Marsh Posté le 06-04-2005 à 10:29:24    

Ben essaye de supprimer ton message !

Reply

Marsh Posté le 06-04-2005 à 10:35:48    

MATAMATA a écrit :

Ben essaye de supprimer ton message !


D'abord, tu cliquettes sur la somptueuse icone "éditer le message".
Ensuite tu découvriras en dessous de la zone d'édition une magnifique case à cocher portant la superbe inscription "Effacer ce message", te permettant ainsi d'enlever, de supprimer, de déléter, d'annihiler tout propos que tu auras posté au préalable, car, hein, soyons intelligents des fois, on ne peut évidement que supprimer ce qui existe déjà. [:itm]

Reply

Marsh Posté le 06-04-2005 à 10:37:08    

Ah oui, j'oubliai: boulet! [:kiki]

Reply

Marsh Posté le 06-04-2005 à 10:48:03    

LOOOOOOOL, bah je viens d'apprendre un truc non disponible sur les forum ( de boulets alors ) que je fréquente, cependant bien que ce soir je serais moin con d'une astuces de forum, je suis toujours bloquer avec ma magnifique macro excel ^^
 
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed