VBA VS Javascript

Résolu/Fermé
biog13 Messages postés 22 Date d'inscription lundi 12 juillet 2021 Statut Membre Dernière intervention 3 août 2023 - 12 mai 2022 à 12:07
biog13 Messages postés 22 Date d'inscription lundi 12 juillet 2021 Statut Membre Dernière intervention 3 août 2023 - 16 mai 2022 à 13:43
Bonjour,

j'ai du passer sur google sheet au boulot cette semaine et je suis en galère avec mes fichiers.
J'avais une petite macro bien pratique et je voudrais la garder.
Elle permet de tracer la date de modification des cellules de la colonne A... Est ce que quelqu'un pourrait me dépanner pour la conversion svp

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then
Target.Offset(0, 11) = Date
End If

End Sub

Merciiii

Biog

Configuration: Windows / Chrome 101.0.4951.54
A voir également:

5 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
12 mai 2022 à 13:17
Bonjour,

Un truc du genre
function onSelectionChange(e) {
  const as = e.source.getActiveSheet();
  const row = e.range.getRow();
  const col = e.range.getColumn();
   const tz = e.source.getSpreadsheetTimeZone();
  const date = Utilities.formatDate(new Date(), tz, 'dd-MM-yyyy     hh:mm:ss');

  if (col==1){ 
        as.getRange(row,1).setValue(date);
  }
}


0
biog13 Messages postés 22 Date d'inscription lundi 12 juillet 2021 Statut Membre Dernière intervention 3 août 2023
12 mai 2022 à 15:39
Merci Jordane.

Est ce que je dois spécifier quelque chose dans ton script ?

Pour le moment j'ai un message d'erreur :
TypeError: Cannot read property 'source' of undefined
onSelectionChange @ Code.gs:2


Je voudrais par exemple que quand la cellule A2 est modifiée, la date de modif soit notée en cellule K2...
du coup j'ai juste modifié ça pour le moment :
if (col==1){
as.getRange(row,11).setValue(date);
}
}
0
biog13 Messages postés 22 Date d'inscription lundi 12 juillet 2021 Statut Membre Dernière intervention 3 août 2023
16 mai 2022 à 10:51
Bonjour,

j'ai eu la surprise ce matin de voir que le script fonctionne alors que ça me faisait un message d'erreur quand je le testais Jeudi mdr
ça me va bien du coup ! :)

Juste pour une petite finition, si je veux que le script s'applique uniquement à un onglet de mon fichier, je dois faire comment svp?
0
biog13 Messages postés 22 Date d'inscription lundi 12 juillet 2021 Statut Membre Dernière intervention 3 août 2023
16 mai 2022 à 11:12
au temps pour moi, il y a un truc qui déconne aussi.
la date s'affiche bien mais dès qu'on sélectionne une cellule de la colonne A et non quand on la modifie pour noter quelque chose.
c'est possible de changer ça ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
biog13 Messages postés 22 Date d'inscription lundi 12 juillet 2021 Statut Membre Dernière intervention 3 août 2023
16 mai 2022 à 13:43
pour ceux que ça intéressera plus tard...

J'ai réussi à bidouiller pour que la date s'affiche en colonne K (N°11) uniquement quand une cellule de la colonne A est modifiée


function onEdit(e) {
const as = e.source.getActiveSheet();
const row = e.range.getRow();
const col = e.range.getColumn();
const tz = e.source.getSpreadsheetTimeZone();
const date = Utilities.formatDate(new Date(), tz, 'dd-MM-yyyy hh:mm:ss');

if (col==1){
as.getRange(row,11).setValue(date);
}
}
0