Excel vba probleme rechercher puis additionne
Résolu
flintb
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 16602 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
- Formule excel pour additionner plusieurs cellules - Guide
- Word et excel gratuit - Guide
- Rechercher ou entrer l'adresse - 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.