Excel vba probleme rechercher puis additionne

Résolu/Fermé
flintb Messages postés 5 Date d'inscription mercredi 1 juin 2011 Statut Membre Dernière intervention 2 juin 2011 - Modifié par Chris 94 le 1/06/2011 à 02:54
michel_m Messages postés 16602 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 2 juin 2011 à 09:17
Bonjour,

je recois toutes les semaines un fichier avec les salaires, et je voudrais faire une macro qui me centralise deux semaines en une seule page.
je narrive pas a additionner les salaires d un meme salarie sur la 3e page, le but etant de selectionner un nom dans la 2e semaine et de le rechercher dans la page consolidatrice, sil ne le trouve pas ca ajoute une ligne avec ses infos a la fin, sil le trouve il faut additionner les salaires

jai ecrit ca pour le moment mais ca ne semble pas fonctionner

  Sub test2() 
Worksheets("W1").Activate 

Dim i As Integer 
Range("A7", Range("A7").End(xlDown)).Select 

For i = 1 To Selection.Rows.Count 
Sheets("W1").Activate 
Rows(i + 6).Copy 
Sheets("Fortnight").Select 
Range("A" & i + 6).Select 

ActiveSheet.Paste 
Application.CutCopyMode = False 

Next i 
Call r13 

End Sub 


Sub r13() 
Dim celluletrouvee As Range 
Dim employee As String 
Dim i, ligne As Integer 

Worksheets("W2").Activate 
Range("A7", Range("A7").End(xlDown)).Select 
For i = 1 To Selection.Rows.Count 


employee = Worksheets("W2").Cells(i, 1).Value 

Worksheets("Fortnight").Activate 

Range("A7", Range("A7").End(xlDown)).Select 
Set celluletrouvee = Selection.Find(employee, lookat:=xlWhole) 

If celluletrouvee Is Nothing Then 
Sheets("W2").Activate 
Rows(i).Copy 
Sheets("Fortnight").Select 
Rows(Selection.Rows.Count + 1).Select 

ActiveSheet.Paste 
Application.CutCopyMode = False 

Else 
ligne = celluletrouvee.Row 
Worksheets("Fortnight").Cells(ligne, 5).Value = Worksheets("Fortnight").Cells(ligne, 5).Value + Worksheets("W2").Cells(i, 5).Value 
Worksheets("Fortnight").Cells(ligne, 6).Value = Worksheets("Fortnight").Cells(ligne, 5).Value + Worksheets("W2").Cells(i, 6).Value 
Worksheets("Fortnight").Cells(ligne, 7).Value = Worksheets("Fortnight").Cells(ligne, 5).Value + Worksheets("W2").Cells(i, 7).Value 
Worksheets("Fortnight").Cells(ligne, 8).Value = Worksheets("Fortnight").Cells(ligne, 5).Value + Worksheets("W2").Cells(i, 8).Value 
End If 
Next i 

End Sub 


Pour plus de details,

le premier nom disponible se trouve en A7, les donnees que je veux sommer au cas ou on trouve le meme salarie sur les deux semaines sont en colonne 5,6,7 et 8.

Si quelqu un peut me dire ou je me trompe, ce serait vmt tres coool!!

Merci d'avance
A voir également:

6 réponses

michel_m Messages postés 16602 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 313
1 juin 2011 à 08:33
Bonjour,

difficile de t'aider sans voir le classeur

donc
mettre le classeur sans données confidentielles en pièce jointe (format XL97-2003) sur
http://cijoint.fr/
et coller le lien proposé (clic droit-copier l'adresse) dans le message de réponse
0
flintb Messages postés 5 Date d'inscription mercredi 1 juin 2011 Statut Membre Dernière intervention 2 juin 2011
1 juin 2011 à 08:37
Bonjour michel_m,

en effet c est plus pratique :), je ne savais pas comment uploader.

voila le lien http://www.cijoint.fr/cjlink.php?file=cj201106/cij0DN19yv.xlsm

et merci de ton aide!!
0
flintb Messages postés 5 Date d'inscription mercredi 1 juin 2011 Statut Membre Dernière intervention 2 juin 2011
1 juin 2011 à 08:39
Ah, jai oublie de le mettre en format 97-2003.

voila le bon lien

http://www.cijoint.fr/cjlink.php?file=cj201106/cij75BS2jP.xls

merci encore
0
michel_m Messages postés 16602 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 313
1 juin 2011 à 08:42
OK, bien reçu, c'est parti!
0
michel_m Messages postés 16602 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 313
1 juin 2011 à 09:09
Que fait on avec les dates; al datyes, sl dates ?
0
flintb Messages postés 5 Date d'inscription mercredi 1 juin 2011 Statut Membre Dernière intervention 2 juin 2011
1 juin 2011 à 09:13
ne t en occupe pas, normalement ce sont les memes, donc le 1er copier coller suffit!
merci
0
michel_m Messages postés 16602 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 313
1 juin 2011 à 09:42
Je regarde dans la journée...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
michel_m Messages postés 16602 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 313
1 juin 2011 à 14:23
re,

ci joint proposition
https://www.cjoint.com/?3Fbos0V7ZPR

le personnel uniquement en W2 ou W1 est pris en compte et ajouté à la fin de fortnight
procédure indifférente à l'ordre alphabêtique des noms en W1 et W2



0
flintb Messages postés 5 Date d'inscription mercredi 1 juin 2011 Statut Membre Dernière intervention 2 juin 2011
2 juin 2011 à 02:09
Hello michel_m

merci beaucoup ca marche parfaitement!

A part que je ne veux pas additionner le hourly rate de la colonne C.

Est ce que je dois changer cette ligne If staff_W2.exists(ref_W1(cptr1)) Then
' personnel 2 semaines
lig_W2 = ligne_W2(cptr1)
ReDim Preserve T_double(9, cptr1)
T_double(0, cptr1) = T_W1(lig_W1, 1)
T_double(1, cptr1) = T_W1(lig_W1, 2)
T_double(8, cptr1) = T_W1(lig_W1, 9)
T_double(9, cptr1) = T_W1(lig_W1, 10)
#### For col = 2 To 7 #### et mettre col= 3 to 7???
T_double(col, cptr1) = T_W1(lig_W1, col + 1) + T_W2(lig_W2, col + 1)

Merci mille fois
0
michel_m Messages postés 16602 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 313
Modifié par michel_m le 2/06/2011 à 09:18
Bonjour,

Curieux, je viens de réessayer: ca marche !

remarques :
col=2 correspond bien à la 3° colonne du tableau T_double (départ à index=0) qui sera "collé" dans fortnight donc sur la colonne C

je t'ai laissé de mettre au format ($, hrs...), attention toutefois vérifies le format date (col I et J) si tu es sur un excel francophone.
0