Décaler l'insertion de la valeur de deux colonnes en fonction d'un nombre

Bonjour, j'ai une question, comment fait on avec offset pour décaler l'insertion de la donnée saisi dans INPUTBOX, de deux cases en fonction du nombre "d'itérations saisi au préalable ?

.Offset(0, 11) = CDate(DateRetour) ' en fonction du nombre d'occurrence ajouter + 2 pour inserer la date dans une cellule decalé de deux

Bonjour,

Pas encore de réponses parce qu'il n'y a que vous qui comprenez ce que vous voulez dire ...

décaler de deux cases (cellules) par rapport à une autre cellule, je sais faire (en principe) , mais, " en fonction du nombre d'itérations saisi au préalable " ...???

un peu plus de précisions ....

A+

Bonjour, effectivement j'ai mal formulé, je reprends:

J'ai cette macro qui me permet de remplir des dates en fonction d'une valeur qui est demandé dans la macro (si 1 alors date retour et date reponse, si 2 alors date retour et date réponse puis date retour 2 et date reponse 2,etc...). et j'aimerais que la macro insère la date retour sur la colonne P et le date réponse sur la colonne Q puis date de retour 2 sur la colonne R et la date reponse 2 sur la colonne S, etc,.....

Je joins en copie mon code et un exemple:

7test.xlsx (11.78 Ko)

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Target.Column <> 5 Or Target.Value = "" Then Exit Sub
Cancel = True

Dim DateRetour As String, DateReponse As String, NBRITERATION As String

NBRITERATION = InputBox("Nombre occurrence ?", "INPUTBOX")
If NBRITERATION = "" Then Exit Sub

For i = 1 To NBRITERATION

DateRetour:
DateRetour = InputBox("Date Retour occurence " & i & vbCrLf & _
"Veuillez entrer une date au format dd/mm/yyyy", "Date de retour de l'AIA")

If DateRetour <> "" And Not IsDate(DateRetour) Then
' MsgBox "Veuillez saisir une date correcte au format dd/mm/yyyy": GoTo DateRetour:
ElseIf DateRetour = "" Then Exit Sub
End If

'DateReponse:
'DateReponse = InputBox("Date Reponse occurence " & i & vbCrLf & _
'"Veuillez entrer une date au format dd/mm/yyyy", "Date de réponse à l'AIA")

'If DateReponse <> "" And Not IsDate(DateReponse) Then
'MsgBox "Veuillez saisir une date correcte au format dd/mm/yyyy": GoTo DateReponse:
' ElseIf DateReponse = "" Then Exit Sub
'End If

With Target
If i = 1 Then .Offset(0, 10) = NBRITERATION
.Offset(0, 11) = CDate(DateRetour) ' en fonction du nombre d'occurrence ajouter + 2 pour inserer la date dans une cellule decalé de deux

End With
Next i

Bonjour

C'est la suite de ce lien ? --> https://forum.excel-pratique.com/s/goto/992267

Cordialement

Edit : A la vue de votre fichier je pense que oui

remplacez

With Target
If i = 1 Then .Offset(0, 10) = NBRITERATION
.Offset(0, 11) = CDate(DateRetour) 
End With

par ceci :

Dim col As Byte
With Target
    If i = 1 Then
        .Offset(0, 10) = NBRITERATION
        .Offset(0, 11) = CDate(DateRetour)
        col = .Offset(0, 10 + i).Column - .Column
    Else: .Offset(0, col) = CDate(DateRetour)
    End If
    col = col + 2
End With
Next i

Bonjour, ca y ressemble mais ce n'est pas le même sujet.

Merci beaucoup, votre code marche. Trop fort merci !!!!!

Merci beaucoup, votre code marche. Mais comment je fais dans votre code pour insérer (avec la même méthode mais décalé de +1) les dates de réponse ?

Vous n'en aviez pas parlé...
Dans le ELSE, remplacez :

.Offset(0, col) = CDate(DateReponse)
par
.Offset(0, col + 1) = CDate(DateReponse)

NB : Lorsque vous postez un code, veillez à utiliser les balises de code en cliquant sur l'icone </> dans la barre de menu et en collant le code dans la fenetre.

Oui c'est ce que j'ai fait et ça fonctionne merci beaucoup. ET je n'en avais pas parlé parce que je voulais ensuite le modifier moi meme.

mais vous etes d'une très grande aide sur ce forum!

Rechercher des sujets similaires à "decaler insertion valeur deux colonnes fonction nombre"