XL 2010 Appliquer une macro à une colonne

  • Initiateur de la discussion Initiateur de la discussion Awazagaga
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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") ???
 
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:
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
 
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 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
 
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
 
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 ?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
18
Affichages
326
Réponses
4
Affichages
220
Réponses
8
Affichages
488
Retour