Changement d'une partie de code par un code

creator3_1969 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -  
creator3_1969 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -


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. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    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
  2. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    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
  3. creator3_1969 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
     
    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
  4. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. creator3_1969 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
     
    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