Bonjour,
J'ai crée le code ci-dessous, pour ajouter à la colonne "RESTE SEM" de la semaine sélectionnée par l'utilisateur, une formule recherchev qui va récupérer le nombre de colis restants pour chaque article, dans un classeur aussi sélectionné par l'utilisateur (Les fichiers sont sur onedrive, et je n'arrive pas à les ouvrir avec la macro).
Mon problème c'est que la formule fonctionne une première fois, et la semaine suivante elle récupère le même nombre de colis de l'actualisation précédente (ex : actualisation de la semaine 37 = 171 colis restants, et actualisation semaine 38 = 171 colis restants, or dans le fichier sélectionné par l'utilisateur, il en reste 152).
Comment est-ce possible? Est-ce possible de corriger?
Après 2 semaines de recherches et tests en vain, je me vois contrainte de vous solliciter.
Merci d'avance pour vos retours!
Sub Formule_rechercheV()
Dim File As FileDialog
Dim Path As String
Dim sFichier As String
'Sélection du fichier du tableau de recherche de la formule
Set File = Application.FileDialog(msoFileDialogOpen)
With File
.Title = "SELECTIONNER LE FICHIER HEBDOMADAIRE CONTENANT LES DONNEES"
.Filters.Clear
.Filters.Add "Excel files", "*.xlsm"
.AllowMultiSelect = False
If File.Show = 0 Then
Exit Sub
Else
Set Classeur = Workbooks.Open(Filename:=File.SelectedItems(1))
Dim sNomClasseur As String
sNomClasseur = Classeur.Name
End If
End With
'Demande la semaine de la colonne REST SEM
myInputBoxVariable = InputBox(Prompt:="DANS QUELLE COLONNE " & """RESTE SEM""" & " VOULEZ-VOUS METTRE LA FORMULE?", Default:="Enter uniquement le n° de semaine ici", Title:="FORMULE FICHIER SUIVI COMMANDES FRAIS STOCK")
If myInputBoxVariable = "" Then
Exit Sub
End If
Application.DisplayAlerts = False
'Sélection du fichier de destination de la formule
Set File = Application.FileDialog(msoFileDialogOpen)
With File
.Title = "SELECTIONNER LE FICHIER HBAL-APR-TDS-009-20210804 Fichier suivi commandes FRAIS STOCK"
.Filters.Clear
.Filters.Add "Excel files", "*.xlsx"
.AllowMultiSelect = False
If File.Show = 0 Then
Exit Sub
Else
Set Classeur2 = Workbooks.Open(Filename:=File.SelectedItems(1))
Dim sNomClasseur2 As String
sNomClasseur2 = Classeur2.Name
Workbooks(sNomClasseur2).Sheets("SUIVI STOCK").Select
End If
End With
'ajoute la formule rechercheV
Ligfin = Cells(Rows.Count, 1).End(xlUp).Row
Workbooks(sNomClasseur2).Sheets("SUIVI STOCK").Range("5:5").Find(What:="RESTE SEM " & myInputBoxVariable).Select
Selection.Offset(1, 0).Select
ActiveCell.FormulaR1C1 = _
"=IFERROR(VLOOKUP(RC14,'[sNomClasseur]EXPORT RESTE SEM'!R1C1:R500C2,2,FALSE),"""")"
'Copie la formule sur la colonne
Selection.Copy
Dim Ligdeb As Long
Dim Col As Integer
Dim lettreCol As String
Ligdeb = Selection.Offset(1, 0).Row
Col = Selection.Offset(1, 0).column
Range(Cells(Ligdeb, Col), Cells(Ligfin, Col)).Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
'Remplace les formules par leur valeur
Range(Cells(Ligdeb, Col), Cells(Ligfin, Col)).Select
Selection.Copy
Range(Cells(Ligdeb, Col), Cells(Ligfin, Col)).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Workbooks("HBAL-APR-TDS-009-20210804 Fichier suivi commandes FRAIS STOCK").Sheets("SUIVI STOCK").Range("5:5").Find(What:="RESTE SEM " & myInputBoxVariable).Select
Application.DisplayAlerts = True
End Sub
J'ai crée le code ci-dessous, pour ajouter à la colonne "RESTE SEM" de la semaine sélectionnée par l'utilisateur, une formule recherchev qui va récupérer le nombre de colis restants pour chaque article, dans un classeur aussi sélectionné par l'utilisateur (Les fichiers sont sur onedrive, et je n'arrive pas à les ouvrir avec la macro).
Mon problème c'est que la formule fonctionne une première fois, et la semaine suivante elle récupère le même nombre de colis de l'actualisation précédente (ex : actualisation de la semaine 37 = 171 colis restants, et actualisation semaine 38 = 171 colis restants, or dans le fichier sélectionné par l'utilisateur, il en reste 152).
Comment est-ce possible? Est-ce possible de corriger?
Après 2 semaines de recherches et tests en vain, je me vois contrainte de vous solliciter.
Merci d'avance pour vos retours!
Sub Formule_rechercheV()
Dim File As FileDialog
Dim Path As String
Dim sFichier As String
'Sélection du fichier du tableau de recherche de la formule
Set File = Application.FileDialog(msoFileDialogOpen)
With File
.Title = "SELECTIONNER LE FICHIER HEBDOMADAIRE CONTENANT LES DONNEES"
.Filters.Clear
.Filters.Add "Excel files", "*.xlsm"
.AllowMultiSelect = False
If File.Show = 0 Then
Exit Sub
Else
Set Classeur = Workbooks.Open(Filename:=File.SelectedItems(1))
Dim sNomClasseur As String
sNomClasseur = Classeur.Name
End If
End With
'Demande la semaine de la colonne REST SEM
myInputBoxVariable = InputBox(Prompt:="DANS QUELLE COLONNE " & """RESTE SEM""" & " VOULEZ-VOUS METTRE LA FORMULE?", Default:="Enter uniquement le n° de semaine ici", Title:="FORMULE FICHIER SUIVI COMMANDES FRAIS STOCK")
If myInputBoxVariable = "" Then
Exit Sub
End If
Application.DisplayAlerts = False
'Sélection du fichier de destination de la formule
Set File = Application.FileDialog(msoFileDialogOpen)
With File
.Title = "SELECTIONNER LE FICHIER HBAL-APR-TDS-009-20210804 Fichier suivi commandes FRAIS STOCK"
.Filters.Clear
.Filters.Add "Excel files", "*.xlsx"
.AllowMultiSelect = False
If File.Show = 0 Then
Exit Sub
Else
Set Classeur2 = Workbooks.Open(Filename:=File.SelectedItems(1))
Dim sNomClasseur2 As String
sNomClasseur2 = Classeur2.Name
Workbooks(sNomClasseur2).Sheets("SUIVI STOCK").Select
End If
End With
'ajoute la formule rechercheV
Ligfin = Cells(Rows.Count, 1).End(xlUp).Row
Workbooks(sNomClasseur2).Sheets("SUIVI STOCK").Range("5:5").Find(What:="RESTE SEM " & myInputBoxVariable).Select
Selection.Offset(1, 0).Select
ActiveCell.FormulaR1C1 = _
"=IFERROR(VLOOKUP(RC14,'[sNomClasseur]EXPORT RESTE SEM'!R1C1:R500C2,2,FALSE),"""")"
'Copie la formule sur la colonne
Selection.Copy
Dim Ligdeb As Long
Dim Col As Integer
Dim lettreCol As String
Ligdeb = Selection.Offset(1, 0).Row
Col = Selection.Offset(1, 0).column
Range(Cells(Ligdeb, Col), Cells(Ligfin, Col)).Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
'Remplace les formules par leur valeur
Range(Cells(Ligdeb, Col), Cells(Ligfin, Col)).Select
Selection.Copy
Range(Cells(Ligdeb, Col), Cells(Ligfin, Col)).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Workbooks("HBAL-APR-TDS-009-20210804 Fichier suivi commandes FRAIS STOCK").Sheets("SUIVI STOCK").Range("5:5").Find(What:="RESTE SEM " & myInputBoxVariable).Select
Application.DisplayAlerts = True
End Sub