XL 2010 Appliquer une macro à une colonne

Awazagaga

XLDnaute Nouveau
Bonjour à vous,

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 :)


Bien à vous,

Awzgg
 

Jauster

XLDnaute Occasionnel
Hello,

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") ???
 

Jauster

XLDnaute Occasionnel
Re,
A essayer :
A insérer dans Sheet1
VB:
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("W:W")) Is Nothing Then
    i = Target.Row
        Call ASA
End If

End Sub
A insérer dans un module :
VB:
Public i As Variant

Sub ASA()

Range("AE" & i).Value = Range("AE" & i).Value & Chr(10) & Range("W" & i).Value & Chr(10) & Date

End Sub
 
Dernière édition:

Awazagaga

XLDnaute Nouveau
Bonjour Jauster,

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 ..

VG2bSZS



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
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, le forum

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
 

Awazagaga

XLDnaute Nouveau
Bonjour le fil, le forum

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
Bonjour Staple1600,

c'est exactement ce que je cherchais à faire ! Merci bien !

Je vais maintenant regarder le code de plus près pour pouvoir le faire sur d'autres applications.

Merci encore !


@++

awzgg
 

Awazagaga

XLDnaute Nouveau
Problème résolu ! Merci à Staple1600 !

Voici le code pour les intéressés :
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
 

Jauster

XLDnaute Occasionnel
Hello Staple1600 (pas de vin ce midi ;)) et awazagaga

Bonjour le fil, le forum

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 ?
 

Discussions similaires

Statistiques des forums

Discussions
311 730
Messages
2 081 981
Membres
101 855
dernier inscrit
alexis345