Remplacer le texte de cellules dans une colonne déterminée

Bonjour à tous,

Je sèche sur ma petite macro. J'explique, après avoir mentionner des dates dans une fonction de type Dim xxxx As String, je souhaite changer les cellules d'une colonne qui contient les jours par la date mentionnée par Dim xxxx As String. Mais je ne trouve pas la procédure à suivre dans toute mes recherches via la toile ou je ne les comprend pas bien....

Merci de votre aide à ce sujet et à bientôt

Bonjour AutodiVBA et bienvenu, bonjour la forum,

Au mieux le fichier qui va bien, au pire le code de la macro ! Après il sera beaucoup plus facile pour nous de t'aider...

Merci beaucoup pour l'intérêt de ma requête.

Il faut savoir qu'il s'agit d'une seule partie de ma macro qui comporte beaucoup de lignes et je suis obligé de faire des "call" macro pour générer mes fichier finaux en .pdf, merci de bien vouloir prendre connaissance de mon fichier en attaché.

Merci.

bonjour,

il n'est pas clair d'utiliser ton fichier dans le contexte mais tu peux sans doute te servir de cet exemple :

Sub BCOMMANDE()
Dim SToDate As Date, ret$, Arr
   Arr = Split("Lundi Mardi Mercredi Jeudi Vendredi Samedi Dimanche")
    ret = InputBox("Merci d'entrerr la date sous la forme JJ/MM/AAA", "Saisie de la date", Date)
   If IsDate(ret) Then
      MsgBox "la date saisie est un " & Arr(Weekday(CDate(ret), 3))
   End If
End Sub

A+

Je vais essayer, merci.

Bonjour Galopin,

Ton exemple n'est malheureusement pas ce à quoi je tends. Je me suis certainement mal exprimé, dans ma demande.

Dans mon Fichier, la colonne C mentionne les jours de semaine, je souhaiterai que les jours soient remplacer via une macro par les dates, précédemment précisé, dans ma première partie:

Dim date_d_lundi As String
Dim date_d_mardi As String
Dim date_d_mercredi As String
Dim date_d_jeudi As String
Dim date_d_vendredi As String

date_d_lundi = InputBox("Merci de mentionner la date de lundi ? JJ/MM/AAAA")
date_d_mardi = InputBox("Merci de mentionner de mardi ? JJ/MM/AAAA")
date_d_mercredi = InputBox("Merci de mentionner de mercredi ? JJ/MM/AAAA")
date_d_jeudi = InputBox("Merci de mentionner de jeudi ? JJ/MM/AAAA")
date_d_vendredi = InputBox("Merci de mentionner de vendredi ? JJ/MM/AAAA")

'Colonne c, si "lundi" alors date_d_lundi
'colonne c, si "mardi" alors date_d_mardi...etc

J'espère avoir été un peu plus clair.

Merci.

Bonjour le fil, bonjour le forum,

Si les dates se suivent, essaie comme ça :

Sub BCOMMANDE()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim BED As Variant 'déclare la variable BED (Boîte d'Entrée Date)
Dim DI As Date 'déclare la variable DI (Date Initiale)
Dim Lun As Date 'déclare la variable Lun (Lundi)
Dim Mar As Date 'déclare la variable Mar (Mardi)
Dim Mer As Date 'déclare la variable Mer (Mercredi)
Dim Jeu As Date 'déclare la variable Jeu (Jeudi)
Dim Ven As Date 'déclare la variable Ven (Vendredi)

Set O = Worksheets("Information") 'définit l'onglet O
DL = O.Cells(Application.Rows.Count, "C").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne C de l'onglet O
O.Columns(3).NumberFormat = "dd/mm/yyyy" 'format de la colonne C
ici: 'étiquette
BED = Application.InputBox("Merci de mentionner la date de lundi ? JJ/MM/AAAA", "DATE", Type:=2) 'définit la boîte d'entrée de date BED
If BED = False Or BED = "" Then Exit Sub 'si bouton [Annuler] ou non renseignée, sort de la procédure
DI = DateSerial(Year(BED), Month(BED), Day(BED)) 'définit la date initiale DI
If Weekday(DI, vbMonday) <> 1 Then 'condition : si DI n'est pas un lundi
    MsgBox "cette date n'est pas un Lundi" 'message
    GoTo ici 'va a l'étiquette "ici"
End If 'fin de la condition
Lun = DI 'définit la variable Lun
Mar = DI + 1 'définit la variable Mar
Mer = DI + 2 'définit la variable Mer
Jeu = DI + 3 'définit la variable Jeu
Ven = DI + 4 'définit la variable Ven
For I = 2 To DL 'boucle sur toutes les lignes I (de 2 à DL)
    Select Case O.Cells(I, "C").Value 'agit en fontion de la valeur de la cellule ligne I colonne C
        Case "lundi" 'cas lundi
            O.Cells(I, "C").Value = Lun 'remplace la valeur de la cellule par la date Lun
        Case "mardi" 'cas mardi
            O.Cells(I, "C").Value = Mar 'remplace la valeur de la cellule par la date Mar
        Case "mercredi" 'cas mercredi
            O.Cells(I, "C").Value = Mer 'remplace la valeur de la cellule par la date Mer
        Case "jeudi" 'cas jeudi
            O.Cells(I, "C").Value = Jeu 'remplace la valeur de la cellule par la date Jeu
        Case "vendredi" 'cas vendredi
            O.Cells(I, "C").Value = Ven 'remplace la valeur de la cellule par la date Ven
    End Select 'fin de l'action en fonction de la valeur de la cellule ligne I colonne C
Next I 'prochaine ligne de la boucle
O.Columns(3).NumberFormat = "dd/mm/yyyy" 'format de la colonne C
End Sub

Sinon il faudra adapter le code...

Je vais tenter tout ça.

Merci ThauThème

Bonjour ThauThème,

Je viens de tester les lignes de commande dans ma macro, super, c'est exactement ce que je voulais. Tout fonctionne à merveille. Reste plus qu'à l'adapter et l'intégrer dans mon fichier.

Un grand merci!

Re,

Un petit plus. Remplace la ligne :

MsgBox "Cette date n'est pas un Lundi !" 'message

par :

MsgBox "Cette date n'est pas un lundi, c'est un " & Choose(Weekday(DI, vbMonday), "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi", "dimanche") & " !" 'message

Bonjour ThauThème,

Super, un petit complément top.

:-)

Rechercher des sujets similaires à "remplacer texte colonne determinee"