Bonsoir,
Debutant sur VBA Excel, j'envisage de réaliser une refacturation téléphonique (fixe et GSM) au sein des différentes directions. Ceci afin d'eviter de multiples actions (copie de feuilles, de colonnes, recherchev etc..) longues et ennuyeuses.
Je commence par le fixe.
Concrètement, nous recevons un fichier brut de notre opérateur téléphonique qui est ensuite mis en forme. Au final, pour chaque direction, il y aura un fichier avec l'ensemble des utilisateurs et leur montant.
1) Tout d'abord, j'ai réalisé la macro suivante qui me permet d'obtenir une feuille avec un montant net pour chaque numéro. Celle ci détaille les appels internes/vers mobiles/internationaux.
Même si le code doit vous sembler optimisable, j'avoue ne pas etre trop mécontent du résultat
2) C'est pour la suite que je bloque malgré plusieurs essais : En fait, je souhaite identifier le titulaire de la ligne.
Sur ce document, je devrais ajouter les colonnes "Matricule", "Nom", "Prénom", "Direction".
Ces infos se situent sur un tableau que l'on nomme Référentiel Téléphonique. Cette feuille est très "lourde" : Colonnes de A à AV pour 7000 lignes environ).
Prenons l'exemple pour l'ajout automatique du matricule.
Au sein de ce référentiel, la colonne Numéro de téléphone se trouve en S et le matricule en W.
Mon problème est de savoir comment parcourir les différentes lignes au sein de la fonction "WorksheetFunction.VLookup" ? (à la place des points d'interrogation dans le code ci dessous) :
Oui, je sais ma boucle est enorme (7100)...
Merci pour votre aide, j'espere que je ne vous ai pas "perdu" en route
Debutant sur VBA Excel, j'envisage de réaliser une refacturation téléphonique (fixe et GSM) au sein des différentes directions. Ceci afin d'eviter de multiples actions (copie de feuilles, de colonnes, recherchev etc..) longues et ennuyeuses.
Je commence par le fixe.
Concrètement, nous recevons un fichier brut de notre opérateur téléphonique qui est ensuite mis en forme. Au final, pour chaque direction, il y aura un fichier avec l'ensemble des utilisateurs et leur montant.
1) Tout d'abord, j'ai réalisé la macro suivante qui me permet d'obtenir une feuille avec un montant net pour chaque numéro. Celle ci détaille les appels internes/vers mobiles/internationaux.
Même si le code doit vous sembler optimisable, j'avoue ne pas etre trop mécontent du résultat
Code:
Sub Factur_Fixe_02()
'
' Copie de la Feuille Opérateur sur une nouvelle feuille renommée Facturation
Cells.Select
Selection.Copy
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = "Facturation"
Sheets("Facturation").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Range("a:f,h:i,p:q").Delete Shift:=xlToLeft
Selection.Columns.AutoFit
ActiveSheet.Range("$A$1:$J$2000").AutoFilter Field:=3, Criteria1:="<>"
Columns("A:A").Select
' Selection.Sort Key1:=Range("A1")
' Sous totaux par numéro de tel
Application.DisplayAlerts = False
Cells.Select
Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(7, 17), _
Replace:=True, PageBreaks:=False, SummaryBelowData:=True
Application.DisplayAlerts = True
End Sub
2) C'est pour la suite que je bloque malgré plusieurs essais : En fait, je souhaite identifier le titulaire de la ligne.
Sur ce document, je devrais ajouter les colonnes "Matricule", "Nom", "Prénom", "Direction".
Ces infos se situent sur un tableau que l'on nomme Référentiel Téléphonique. Cette feuille est très "lourde" : Colonnes de A à AV pour 7000 lignes environ).
Prenons l'exemple pour l'ajout automatique du matricule.
Au sein de ce référentiel, la colonne Numéro de téléphone se trouve en S et le matricule en W.
Mon problème est de savoir comment parcourir les différentes lignes au sein de la fonction "WorksheetFunction.VLookup" ? (à la place des points d'interrogation dans le code ci dessous) :
Code:
Sub Identification()
Set mat = Sheets("feuil4").Range("S1:W1000")
For Boucle = 2 To 7100
Cells(Boucle, 2).Value = WorksheetFunction.VLookup(Range("A" [B][U]?????[/U][/B]).Value, mat, 5, False)
Next Boucle
End Sub
Merci pour votre aide, j'espere que je ne vous ai pas "perdu" en route