Je débute sur VBA et je suis bloqué à cause d'une (je pense) petite chose.
Explications :
J'ai une macro qui s'active quand je change la valeur d'une cellule dans une colonne définie (W).
Mais le problème est que la macro est faite pour être sur la ligne 8. Donc dès que je change la valeur d'une cellule n'importe où dans la colonne W la macro appelle la ligne 8.
Pour être plus clair, voici ma macro :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("W:W")) Is Nothing Then Application.Run "Feuil1.ASA"
End Sub
Sub ASA()
Range("AE8").Value = Range("AE8").Value & Chr(10) & Range("W8").Value & Chr(10) & Date
End Sub
De ce que je me suis renseigner il faudrait que j'utilise une variable et/ou argument ?! Mais je n'y comprends rien :/
Tout d'abord merci de m'avoir lu, en espérant que quelqu'un puisse gentiment m'aider
Si j'ai bien compris tu aimerais adapter la macro de manière à ne pas tout le temps renvoyer 8 mais la lignes dans laquelle tu effectues le changement en colonne W ?
Ex : Changement en W12, donc Range("AE12") et non plus Range("AE8") ???
Désolé pour le temps de réponse, je n'ai pas vraiment eu le temps d'essayer, jusqu'à maintenant ! Et surtout merci pour ton retour.
Je comprends ce que tu veux faire, tu rajoutes une variable " i " mais quand je choisi dans am liste déroulante j'ai ce message d'erreur qui s'affiche ..
Puis en déboguant j'ai la deuxième ligne qui se surligne :
VB:
Sub ASA()
Range("AE" & i).Value = Range("AE" & i).Value & Chr(10) & Range("W" & i).Value & Chr(10) & Date
End Sub
Si j'ai bien compris
(à mettre dans le code de la feuille => ET PAS DANS UN MODULE STANDARD)
VB:
Private Sub Worksheet_Change(ByVal r As Range)
If Not Intersect(r, Range("W:W")) Is Nothing Then
With Cells(r.Row, "AE")
.Value = .Value & Chr(10) & r & Chr(10) & Date
End With
End If
End Sub
Si j'ai bien compris
(à mettre dans le code de la feuille => ET PAS DANS UN MODULE STANDARD)
VB:
Private Sub Worksheet_Change(ByVal r As Range)
If Not Intersect(r, Range("W:W")) Is Nothing Then
With Cells(r.Row, "AE")
.Value = .Value & Chr(10) & r & Chr(10) & Date
End With
End If
End Sub
Private Sub Worksheet_Change(ByVal r As Range)
If Not Intersect(r, Range("W:W")) Is Nothing Then
With Cells(r.Row, "AE")
.Value = .Value & Chr(10) & r & Chr(10) & Date
End With
End If
End Sub
Si j'ai bien compris
(à mettre dans le code de la feuille => ET PAS DANS UN MODULE STANDARD)
VB:
Private Sub Worksheet_Change(ByVal r As Range)
If Not Intersect(r, Range("W:W")) Is Nothing Then
With Cells(r.Row, "AE")
.Value = .Value & Chr(10) & r & Chr(10) & Date
End With
End If
End Sub
Tu fais bien de me corriger : beaucoup plus propre et j'apprends en même temps. J'ai gardé la macro dans le module puisque je pensais qu'il voulait l'utiliser par la suite.
Par contre je n'arrive pas à comprendre d'où vient l'erreur puisque chez moi elle marchait très bien. A cause de la liste déroulante ?