wishtolearn
XLDnaute Nouveau
Hello à tous,
Grâce à l'aide des membres de ce forum mon fichier excel est quasi prêt. Afin de le parfaire, j'aurais besoin de vos lumières pour deux petites choses concernant le même code VBA
Grâce à l'aide des membres de ce forum mon fichier excel est quasi prêt. Afin de le parfaire, j'aurais besoin de vos lumières pour deux petites choses concernant le même code VBA
- que puis-je rajouter pour que, suite au cut des lignes entières, Excel "colle" en mode value only? Les lignes des feuilles de destination contenant des mise en forme conditionnelles avec des couleurs, le "collage brut" d'excel suite à l'usage de la macro rajoute bien les lignes mais fait sauter ces MFC
VB:Sub Others()Dim i As Variant Dim endrow As Integer Dim DAV As Worksheet, OTH As Worksheet Set DAV = ActiveWorkbook.Sheets("Demandes à valider") Set OTH = ActiveWorkbook.Sheets("Other") endrow = DAV.Range("A" & DAV.Rows.Count).End(xlUp).Row For i = 2 To endrow If DAV.Cells(i, "G").Value = "Other" And DAV.Cells(i, "K").Value = "To be Done" Then DAV.Cells(i, "G").EntireRow.Cut Destination:=OTH.Range("A" & OTH.Rows.Count).End(xlUp).Offset(1) End If Dim r As Long For r = ActiveSheet.UsedRange.Rows.Count To 1 Step -1 If Application.CountA(Rows(r)) = Empty Then Rows(r).EntireRow.Delete End If Next r Next i End Sub
- ce même code est dupliqué sur plusieurs macros et utilisé sur la même feuille source (Demandes à traiter), la seule variable qui change est le nom de la feuille de destination/type de demande (Otherbis, Otherter, etc...).
Ce code fonctionne très bien mais c'est un peu ennuyeux d'avoir à lancer 10 macros alors que le code est toujours le même, la seule différence entre celles-ci sont ces deux lignes qui changent:
VB:Set OTH = ActiveWorkbook.Sheets("[COLOR=rgb(243, 121, 52)][B]Otherbis[/B][/COLOR]") If DAV.Cells(i, "G").Value = "[B][COLOR=rgb(243, 121, 52)]Otherbis[/COLOR][/B]" And DAV.Cells(i, "K").Value = "To be Done" Then Set OTH = ActiveWorkbook.Sheets("[B][COLOR=rgb(251, 160, 38)]Otherter[/COLOR][/B]") If DAV.Cells(i, "G").Value = "[B][COLOR=rgb(251, 160, 38)]Otherter[/COLOR][/B]" And DAV.Cells(i, "K").Value = "To be Done" Then