Accueil – Le CFO masqué › Forums › Power BI › Modifier un VBA en Power BI
- Ce sujet contient 0 réponse, 1 participant et a été mis à jour pour la dernière fois par Yohan, le il y a 11 mois.
-
AuteurArticles
-
8 novembre 2023 à 9 h 35 min #134344YohanParticipant
Bonjour,
Je suis actuellement en train, pour le travail, de faire une BI regroupant les congés posés. Il s’avère cependant que malgré mes effort, je n’arrive pas à ce que cela soit correcte et mon prédécesseur avait fait le nécessaire sur Excel en VBA via l’aide d’une Macro qui fonctionne très bien.
Une âme charitable saurait m’indiquer comment je devrais modifier cette formule VBA en formule BI :
Option Explicit
Option Base 1Public Sub generateId()
‘Génération d’un identifiant pour les demandes CCDim ligne As Integer
Dim idDemande As Stringligne = 2
While expEConges.Cells(ligne, 2).Value <> “”
If expEConges.Cells(ligne, 1).Value = “” Then
‘Il n’existe pas d’identifiant, j’en crée un
idDemande = expEConges.Cells(ligne, 3).Value & “_” & expEConges.Cells(ligne, 8).Value & “_” & _
expEConges.Cells(ligne, 14).Value & “_” & expEConges.Cells(ligne, 15).ValueexpEConges.Cells(ligne, 1).Value = idDemande
End If
ligne = ligne + 1
WendEnd Sub
Public Sub recupCDF()
‘Récupération des libellés des centres de frais
Dim ligne As Integer
Dim i As Integerligne = 2
With cdf
While .Cells(ligne, 1).Value <> “”
cdfs(.Cells(ligne, 1).Value) = .Cells(ligne, 2).Value
‘Suppression des flags
i = 2
While Worksheets(.Cells(ligne, 2).Value).Cells(i, 2).Value <> “”
Worksheets(.Cells(ligne, 2).Value).Cells(i, 1).Value = “”
i = i + 1
Wendligne = ligne + 1
WendEnd With
End Sub
Public Function existDemandeInCdf(ByVal idCdf As Double, ByVal idDemande As String, ByVal numSemaine As String) As Integer
‘Vérifie si une demande est déjà présente pour le centre de frais
Dim ligne As Integer
Dim exist As Integerligne = 2#
exist = 0
‘idCdf = 50144
With Worksheets(cdfs(idCdf))
While .Cells(ligne, 2).Value <> “” And exist = 0
If .Cells(ligne, 2).Value = idDemande And .Cells(ligne, 11).Value = numSemaine Then
exist = ligne
End If
ligne = ligne + 1
WendEnd With
existDemandeInCdf = exist
End Function
Public Function getDateDemandee(ByVal dateDemandee As String) As Date
End Function
Public Function isFerie(dateDemandee As Date) As Boolean
Dim ligne As Integer
Dim isF As BooleanisF = False
ligne = 2
While jf.Cells(ligne, 1).Value <> “” And Not isF
If jf.Cells(ligne, 1).Value = dateDemandee Then isF = True
ligne = ligne + 1
WendisFerie = isF
End Function
Public Function getNewLigneInCdf(idCdf As Double) As Integer
Dim ligne As Integerligne = 2
‘idCdf = 50144
With Worksheets(cdfs(idCdf))
While .Cells(ligne, 2).Value <> “”
ligne = ligne + 1
Wend
End WithgetNewLigneInCdf = ligne
End Function
Public Function getCommentaireCollab(matricule As Long)
Dim commentaire As String
Dim ligne As Integer
Dim found As Booleancommentaire = “”
found = False
ligne = 2While collabs.Cells(ligne, 1).Value <> “” And Not found
If collabs.Cells(ligne, 1).Value = matricule Then
‘Le collab est trouvé, on met le commentaire à jour
commentaire = collabs.Cells(ligne, 1).Value & ” – ” & collabs.Cells(ligne, 2).Value & _
” ” & collabs.Cells(ligne, 3).Value & vbCrLf & _
“Activité : ” & collabs.Cells(ligne, 4).Value & vbCrLf & _
“Contrat : ” & collabs.Cells(ligne, 5).Value & vbCrLf & _
“Equipe : ” & collabs.Cells(ligne, 6).Value & vbCrLf & _
“Informations Complémentaires : ” & collabs.Cells(ligne, 7).Valuefound = True
End If
ligne = ligne + 1
WendgetCommentaireCollab = commentaire
End Function
Sub Macro1()Dim ligne As Integer
ligne = 2
With Feuil4
While .Cells(ligne, 2).Value <> “”.Cells(ligne, 4).AddComment getCommentaireCollab(.Cells(ligne, 3).Value)
.Cells(ligne, 4).Comment.Shape.Height = 102
.Cells(ligne, 4).Comment.Shape.Width = 215
.Cells(ligne, 4).Comment.Shape.OLEFormat.Object.Font.Size = 7ligne = ligne + 1
Wend
End With
End SubMerci d’avance à vous et bonne journée
-
AuteurArticles
- Vous devez être connecté pour répondre à ce sujet.