Excel vba probleme rechercher puis additionne
Résolu
flintb
Messages postés
5
Statut
Membre
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
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
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
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:
- Excel vba probleme rechercher puis additionne
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Rechercher ou entrer l'adresse - Guide
- Comment additionner sur excel - Guide
- Déplacer colonne excel - Guide
6 réponses
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
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
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!!
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!!
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
voila le bon lien
http://www.cijoint.fr/cjlink.php?file=cj201106/cij75BS2jP.xls
merci encore
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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
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
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
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.
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.