Retour à la ligne [VBA]

Bonjour,

Je souhaite créer un programme un peu spécial, certes mais qui m'aiderai grandement...

J'aimerai créer un programme qui retourne a la colonne A quand jecris dans la colonne E MAIS qui retourne dans une cellule vide (où il n'y a rien d'ecrit).. voici une image pour mieux comprendre:

Le programme pour le retour a la ligne simple est:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 5 Then
             'Fait le retour a la ligne en colonne A quand on entre une valeur dans la colonne E
                Target.Offset(1, -4).Select
    End If
End Sub 

Pouvez-vous m'aider, je ne sais pas si ce que je demande est possible..

Cordialement

sans titre

Coucou Pite Pseudo bizarre D:

Voilà qui devrait résoudre tes soucis

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Lig As Long
If Not Intersect(Target, Columns("E:E")) Is Nothing Then
Lig = 1 
Do While Not IsEmpty(Range("A" & Lig))
    Lig = Lig + 1
Loop
Range("A" & Lig).Select
End If
End Sub

Colle le directement dans ta Feuille ^^

N'hésite pas à revenir si quelque chose est à modifier !

C'est exactement ce que je souhaitais, merci infiniment !

PS: On ne se moque pas de mon pseudo ! :p

Aha parfait ^^ !

N'hésite pas si tu a d'autre problème ! Et coche bien que ton problème est résolu ;D

Salut Juice, j'ai un petit problème, quand j'en additionne deux, le programme ne fonctionne pas et je ne sais pas pourquoi, Peut tu m'aider ?

capture

Coucou Pite !

Je pense que la solution à ton problème c'est de : Ne pas insérer de ligne!

Je rigole XD En faite si la macro déconne c'est qu'elle est censé s'activer à chaque changement de valeur dans ta colonne E, donc si tu insère une ligne tu change la valeur des cellules de E mais doit y avoir un truc qui l'embête dans son lancement.

Ce que je te propose donc c'est d'ajouter un "si j'insère une ligne, alors je quitte ma macro"'.

Voici le code :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Lig As Long
If Target.Columns.Count = Application.Columns.Count Then 'Si j'insère une ligne, alors [...]
Exit Sub ' [...] je quitte ma macro
End If
If Not Intersect(Target, Columns("E:E")) Is Nothing Then
Lig = 1
Do While Not IsEmpty(Range("A" & Lig))
    Lig = Lig + 1
Loop
Range("A" & Lig).Select
End If
End Sub

Voilà Si sa ne te conviens pas, n'hésite pas à revenir vers moi

t'es un genie !

Le programme fonctionne mais je souhaiterai que ça fasse un retour à la ligne en colonne D puis quand je clique sur la colonne E et que jecris mon texte il me fasse AUSSI le retour à la ligne, aurais-tu la solution ?

Oulha je comprend pas ta question la par contre D:

Tu peux m'en dire un peu plus ? Et je regarde

Ce programme :

 Private Sub Worksheet_Change(ByVal Target As Range)
Dim Lig As Long
If Target.Columns.Count = Application.Columns.Count Then 'Si j'insère une ligne, alors [...]
Exit Sub ' [...] je quitte ma macro
End If
If Not Intersect(Target, Columns("E:E")) Is Nothing Then
Lig = 1
Do While Not IsEmpty(Range("A" & Lig))
    Lig = Lig + 1
Loop
Range("A" & Lig).Select
End If
End Sub 

Reviens au même que celui la :

 Private Sub Worksheet_Change(ByVal Target As Range)
Dim Lig As Long
If Not Intersect(Target, Columns("E:E")) Is Nothing Then
Lig = 1 
Do While Not IsEmpty(Range("A" & Lig))
    Lig = Lig + 1
Loop
Range("A" & Lig).Select
End If
End Sub 

Les deux programme font la même chose c'est à dire qu'il revienne à la ligne en colonne A quand je rentre ma valeur en colonne E.

Cependant, moi, je souhaiterai additionner un des deux programme avec lui même afin que ça fasse exactement la même chose mais EN PLUS en colonne D. Donc en gros il me fasse un retour à la ligne dans la colonne A quand celle-ci est vide quand je rentre une valeur dans La colonne D et ensuite aussi quand je rentre une valeur dans la colonne E

Ai-je été clair ?

Ah ouiiiiiii ! Bah c'est bidon

Tu copie le code qui te permet de faire un retour à la ligne si tu entre une valeur dans ta colonne E et tu la colle à la fin de ta procédure en changeant l'indication de ta colonne E par ta colonne D :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Lig As Long
If Target.Columns.Count = Application.Columns.Count Then 'Si j'insère une ligne, alors [...]
Exit Sub ' [...] je quitte ma macro
End If 'Sinon je lance ma macro
If Not Intersect(Target, Columns("E:E")) Is Nothing Then 'Si j'entre une valeur en colonne E alors
Lig = 1
Do While Not IsEmpty(Range("A" & Lig)) 'retour à la ligne colonne A
    Lig = Lig + 1
Loop
Range("A" & Lig).Select
End If
If Not Intersect(Target, Columns("D:D")) Is Nothing Then 'Si j'entre une valeur en colonne D alors
Lig = 1
Do While Not IsEmpty(Range("A" & Lig)) 'retour à la ligne colonne A
    Lig = Lig + 1
Loop
Range("A" & Lig).Select
End If
End Sub

Cela te conviens ?

Je confirme ce que j'ai dis, t'es bien un génie ! Merci beaucoup tu m'as grandement aidé, je viendrais te voir si j'ai d'autre soucis

Je confirme ce que j'ai dis, t'es bien un génie !

Allons tu va me faire rougir

xDDD Blague à part je reste à ta disposition si jamais tu a besoin ;D !

Rechercher des sujets similaires à "retour ligne vba"