Mettre la fonction vba sur une plage
Résolu
Antoine.g
-
Antoine.g -
Antoine.g -
Bonjour,
Je suis débutant en VBA et je bute sur la problématique suivante : je souhaite que cette fonction ci-dessous marche non pas que sur la cellule A1 mais de A1 à A10. Cela fait plusieurs heures que j'essaie mais impossible d'y arriver...
Merci d'avance de votre retour!
Antoine
Je suis débutant en VBA et je bute sur la problématique suivante : je souhaite que cette fonction ci-dessous marche non pas que sur la cellule A1 mais de A1 à A10. Cela fait plusieurs heures que j'essaie mais impossible d'y arriver...
Dim MemoCell As String Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Cells(1, 1) <> MemoCell Then Cells(1, 2) = Now MemoCell = Cells(1, 1) End If End Sub
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI Merci d'y penser dans tes prochains messages. |
Merci d'avance de votre retour!
Antoine
A voir également:
- Mettre la fonction vba sur une plage
- Fonction si et - Guide
- L'indice n'appartient pas à la sélection vba - Forum VB / VBA
- Frédéric cherche à faire le buzz sur les réseaux sociaux. il a ajouté une image d’ours polaire sur une image de plage. retrouvez l'image originale de la plage. que cache l'ours polaire ? ✓ - Forum Google Chrome
- Excel remplir automatiquement une cellule en fonction d'une autre ✓ - Forum Excel
- Fonction find vba - Astuces et Solutions
3 réponses
Bonjour,
On ne sait pas trop ce que tu cherches à faire avec ton code.. donc il nous sera difficile de te répondre ...
Mais bon.. dans le doute... as tu essayé avec une boucle ??
Ou ne pourrais tu pas utilisé le "target" ?
D'où provient cette variable memocell ? Qu'est-ce qu'elle contient ?
Pourquoi l'as tu placée en dehors de ton sub ? Sachant que pour la déclaration en dehors des sub... tu dois utiliser PUBLIC et non DIM...
bref... merci de nous donner tous les détails.
On ne sait pas trop ce que tu cherches à faire avec ton code.. donc il nous sera difficile de te répondre ...
Mais bon.. dans le doute... as tu essayé avec une boucle ??
Ou ne pourrais tu pas utilisé le "target" ?
D'où provient cette variable memocell ? Qu'est-ce qu'elle contient ?
Pourquoi l'as tu placée en dehors de ton sub ? Sachant que pour la déclaration en dehors des sub... tu dois utiliser PUBLIC et non DIM...
bref... merci de nous donner tous les détails.
Bonjour Jordane45 et merci pour la reponse rapide!
Ce que je souhaite faire c'est marquer la date d'une modification de cellule sur la colonne A sur les lignes 1 à 10 sur une colonne à droite.
Exemple : si la valeur d'A5 se modifie(et uniquement si elle se modifie c'est à dire que si la valeur précédente était 5 et que la nouvelle valeur est 5, on ne fait rien), date en B5.
Pour la variable, j'ai bêtement fait un copier/coller d'un autre sujet... J'ai vraiment très (très, très ...) peu de connaissance en VBA donc pour l'utilisation de "target" je réponds "peut être"... ;-)
J’espère être plus clair sinon n'hésites pas et encore merci!
Antoine
Ce que je souhaite faire c'est marquer la date d'une modification de cellule sur la colonne A sur les lignes 1 à 10 sur une colonne à droite.
Exemple : si la valeur d'A5 se modifie(et uniquement si elle se modifie c'est à dire que si la valeur précédente était 5 et que la nouvelle valeur est 5, on ne fait rien), date en B5.
Pour la variable, j'ai bêtement fait un copier/coller d'un autre sujet... J'ai vraiment très (très, très ...) peu de connaissance en VBA donc pour l'utilisation de "target" je réponds "peut être"... ;-)
J’espère être plus clair sinon n'hésites pas et encore merci!
Antoine
Un truc du genre
Cordialement,
Jordane
Private Sub Worksheet_Change(ByVal Target As Range) If Not Application.Intersect(Target, Range("A1:A10")) Is Nothing Then Cells(Target.Row, 2).Value = Now End If End Sub
Cordialement,
Jordane
Tu peux faire comme ça :
Public oldval Public Sub Worksheet_SelectionChange(ByVal Target As Range) oldval = Target.Value End Sub Private Sub Worksheet_Change(ByVal Target As Range) If Not Application.Intersect(Target, Range("A1:A10")) Is Nothing Then If Target.Value <> oldval Then Cells(Target.Row, 2).Value = Now End If End If End Sub