Macro Excel duplicage

Résolu
lelion4 -  
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

j'ai un problème de macro sur mon fichier excel (je suis débutant total en VBA) : voici la macro elle-même :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Columns("l")) Is Nothing Then
If Target.Count > 1 Then Exit Sub
Target.Offset(0, -1) = Date
End If
End Sub

Le problème que j'ai, c'est que je voudrai dupliquer cette formule, pour que plusieurs colonnes se remplissent automatiquement, par exemple la colonne o par rapport à p, la u par rapport à v, etc...

J'ai essayé plusieurs moyens, en recherchant des solutions, mais je trouve sa assez compliqué... :s
A voir également:

1 réponse

pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Bonjour,

Un exemple vite fait :
On remplit un Array avec les numéros des colonnes, puis on compare le numéro de la colonne de Target avec les valeurs de cet array. Si on trouve une correspondance on exécute le code.
Voici :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Colonnes As Variant

'A placer en premier pour éviter les erreurs :
If Target.Count > 1 Then Exit Sub
'place ici tes numéros de colonnes 12 = L, 16 = P, 22 = V etc...
Colonnes = Array(12, 16, 22)
'Application.Match renvoie une erreur si pas de correspondance.
    'donc si pas d'erreur alors 
If Not IsError(Application.Match(Target.Column, Colonnes, 0)) Then
    'on inscrit la date
    Target.Offset(0, -1) = Date
End If
End Sub

1
lelion4
 
Merci ! La solution que tu propose fonctionne correctement.

Les possibilités qu'apporte ce système à excel m'ont l'air d'être énormes. Je pense que je vais me plonger un peu plus dans les macros.
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Cette solution fonctionne et est évolutive. Il est en effet aisé d'ajouter ou d'enlever des colonnes dans : Colonnes = Array(12, 16, 22).
Les possibilités d'Excel avec VBA sont en effet assez impressionnantes, tu t'en rendra compte si tu persévères.
A bientôt alors.
0