Changement d'une partie de code par un code



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

5 réponses

  1. 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
    1. Contributeur
      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
      1. 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
        1. Modérateur
          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...
          1. Contributeur
            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.