Changement d'une partie de code par un code

Fermé
creator3_1969 Messages postés 13 Date d'inscription vendredi 25 janvier 2019 Statut Membre Dernière intervention 9 avril 2020 - 3 mars 2020 à 12:08
creator3_1969 Messages postés 13 Date d'inscription vendredi 25 janvier 2019 Statut Membre Dernière intervention 9 avril 2020 - 7 avril 2020 à 16:14


Bonjour,

J'essaie de faire modifier une partie du code de mon module 1 par une autre partie de code mais je n'y arrive pas.

Je voudrais que si la valeur dans la case W1 = lundi , toutes les lignes du codes comportant un " - 1 " soit remplacée par un " - 3 "

Ci-joint l'exemple de mon code.

Pouvez-vous m'aider ?

D'avance merci pour votre aide

Laurent
A voir également:

5 réponses

yg_be Messages postés 22722 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
Modifié le 3 mars 2020 à 12:52
bonjour,
ce genre de choses se réalise habituellement en utilisant des variables dont on change la valeur, en appelant des fonctions, ou en passant des paramètres à des routines.
merci de partager le texte de ton code, et pas une image. en veillant à utiliser les balises de code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
veille aussi à compiler ton code avant de le partager, pour éliminer les erreurs les plus flagrantes.
je suggère aussi d'ajouter une ligne "option explicit" en début de module.
cela nous permettra de mieux t'aider.
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
3 mars 2020 à 13:05
Bonjour

Ne pas confondre la valeur égale quelque chose et la valeur contient quelque chose...
ce que tu cherches n'est pas isolé sur la ligne il fait partie d'un ensemble de texte...
0
creator3_1969 Messages postés 13 Date d'inscription vendredi 25 janvier 2019 Statut Membre Dernière intervention 9 avril 2020
7 avril 2020 à 12:42
Bonjour,

Désolé d'avoir pris autant de temps à revenir vers vous mais voilà le code que j'avais d'abord mis en image.

J'espère que vous pourrez m'aider.

Laurent


<code basic>


Sub Extraction2()

'v?rifier si cellule = lundi pour changer valeur


With Worksheets("Overview")
If .Range("X1") = "lundi" Then

End If

ActiveWorkbook.VBProject.VBAProject.vbacomponents("Module1").CodeModule



For i = 1 To .CountOfLines
Cible = .Lines(i, 1)
If Cible = "- 1" Then
.ReplaceLine i, "- 3"

End If
Next
'Call AllCarrier

End With
End Sub
</code>


Sub AllCarrier()

Application.ScreenUpdating = False
Sheets("Query").Select

'All Carrier'
'Create Sheet'
Sheets.Add After:=ActiveSheet
ActiveSheet.Name = "All Carrier"
'Data Extraction'
Sheets("Query").Select
Columns("A:T").Copy
Sheets("All Carrier").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Columns("A:T").EntireColumn.AutoFit
Columns("F:F").Select
Application.CutCopyMode = False
Selection.NumberFormat = "m/d/yyyy"
Range("A1").Select
'Saving in Folder'
Sheets("All Carrier").Select
Const csPath1 As String = "P:\Transport Department\Transport\D?partement Transport\Transport\Daily\Tracking\PNTK Report\All Carrier\"
MyName = ActiveSheet.Name & "_" & Format(Now() - 1, "dd-mm-yyyy") 'VALEUR A REMPLACER
ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:=csPath1 & MyName
ActiveWorkbook.Close
'Delete Sheet'
Application.DisplayAlerts = False
Sheets("All Carrier").Delete
Sheets("Overview").Select
Application.ScreenUpdating = True
Application.DisplayAlerts = True

Call AllDailyData

End Sub
0
yg_be Messages postés 22722 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
Modifié le 7 avril 2020 à 14:00
tu n'expliques pas ce que tu veux réaliser avec ton code.
peut-être ainsi:
Private Sub Extraction2()
Dim nombre As Integer
With Worksheets("Overview")
    If .Range("X1") = "lundi" Then
        nombre = 3
    Else
        nombre = 1
    End If
End With
Call AllCarrier(nombre)
End Sub
Private Sub AllCarrier(unoutrois As Integer)
Dim MyName As String
Application.ScreenUpdating = False
Sheets("Query").Select

'All Carrier'
'Create Sheet'
Sheets.Add After:=ActiveSheet
ActiveSheet.Name = "All Carrier"
'Data Extraction'
Sheets("Query").Select
Columns("A:T").Copy
Sheets("All Carrier").Select
Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Columns("A:T").EntireColumn.AutoFit
Columns("F:F").Select
Application.CutCopyMode = False
Selection.NumberFormat = "m/d/yyyy"
Range("A1").Select
'Saving in Folder'
Sheets("All Carrier").Select
Const csPath1 As String = "P:\Transport Department\Transport\D?partement Transport\Transport\Daily\Tracking\PNTK Report\All Carrier\"
MyName = ActiveSheet.Name & "_" & Format(Now() - unoutrois, "dd-mm-yyyy") 'VALEUR A REMPLACER
ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:=csPath1 & MyName
ActiveWorkbook.Close
'Delete Sheet'
Application.DisplayAlerts = False
Sheets("All Carrier").Delete
Sheets("Overview").Select
Application.ScreenUpdating = True
Application.DisplayAlerts = True

'Call AllDailyData

End Sub
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
creator3_1969 Messages postés 13 Date d'inscription vendredi 25 janvier 2019 Statut Membre Dernière intervention 9 avril 2020
7 avril 2020 à 16:14
Bonjour,

Merci pour ton aide et désolé pour le fait de ne pas être trop explicite sans le vouloir.

Je vais essayé d'expliquer.

Dans mon fichier XLS, il y a une case" W1" dans laquelle est traduit la date du jour en lettre (lundi, mardi,.…)

Dans le code après "all carrier" se trouve des instructions pour copier les informations d'une page "QUERY" vers un nouveau fichier "all carrier" comportant la date du jour -1 (c'est un rapport journalier basé sur des datas de la veille).

Ce que voudrais, c'est que lorsque la case W1 = lundi, c'est avant que le code "all carrier" se fasse, que la date du jour - 1 soit changée en date du jour -3 pour refléter le vendredi et non le dimanche.

Est-ce que c'est plus clair ainsi ?

Merci en tous les cas pour ton aide et je vais essayer dès que j'en ai l'occasion le code que tu as modifié.

Laurent
0