Convertir macro VBA en Google Sheet

Bonjour à tous,

J'ai une macro en vba excel qui fonctionne très bien et je souhaiterais la convertir de telle manière qu'elle fonctionne sur google Sheets

ci dessous la macro vba excel

Sub copier()

If CDate(Sheets(1).Cells(1)) < Date Then

Sheets(1).Copy after:=Sheets(1)

Sheets(2).Name = Format(CDate(Sheets(1).Cells(1)), "dd-mm-yyyy")

Sheets(2).Visible = 1

Sheets(1).Cells(1) = Date

Sheets(1).Select

End If

End Sub

Merci d'avance

Bonjour, essai ça.

function copier() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
  var dateCell = sheet.getRange('A1'); // Assurez-vous que la cellule A1 contient la date
  var currentDate = new Date();

  if (new Date(dateCell.getValue()) < currentDate) {
    var newSheet = sheet.copyTo(SpreadsheetApp.getActiveSpreadsheet());
    newSheet.setName(Utilities.formatDate(new Date(dateCell.getValue()), Session.getScriptTimeZone(), 'dd-MM-yyyy'));
    newSheet.showSheet();

    dateCell.setValue(currentDate);
    sheet.activate();
  }
}
  • SpreadsheetApp.getActiveSpreadsheet().getSheets()[0] : Obtient la première feuille du classeur actif.
  • sheet.getRange('A1') : Sélectionne la cellule A1 (assurez-vous que cette cellule contient la date).
  • new Date(dateCell.getValue()) < currentDate : Compare la date dans la cellule A1 avec la date actuelle.
  • sheet.copyTo(SpreadsheetApp.getActiveSpreadsheet()) : Copie la feuille actuelle.
  • newSheet.setName(Utilities.formatDate(new Date(dateCell.getValue()), Session.getScriptTimeZone(), 'dd-MM-yyyy')) : Renomme la nouvelle feuille avec la date formatée.
  • newSheet.showSheet() : Rend la nouvelle feuille visible.
  • dateCell.setValue(currentDate) : Met à jour la cellule A1 avec la date actuelle.
  • sheet.activate() : Sélectionne la feuille originale.

C'est parfait

Merci beaucoup , merci encore

Pas de souci, n'oublie pas de clore le sujet avec

Pas de probleme , avant de clore le sujet

Je n'arrive pas a rajouter la protection de la feuille 2 par mot de passe dans google sheet

le code en VBA donne ceci:

Sub copier()
If CDate(Sheets(1).Cells(1)) < Date Then
    Sheets(1).Copy after:=Sheets(1)
    Sheets(2).Name = Format(CDate(Sheets(1).Cells(1)), "dd-mm-yyyy")
    Sheets(2).Visible = 1
    Sheets(1).Cells(1) = Date
    Sheets(1).Select
    Sheets(2).Protect Password:="Glen-Francois"
End If
End Sub

avez vous une idee , comment rajouter le protect password

 Sheets(2).Protect Password:="Glen-Francois"

Merci de votre aide d'avance

Essai ça.

function copier() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
  var dateCell = sheet.getRange('A1'); // Assurez-vous que la cellule A1 contient la date
  var currentDate = new Date();

  if (new Date(dateCell.getValue()) < currentDate) {
    var newSheet = sheet.copyTo(SpreadsheetApp.getActiveSpreadsheet());
    newSheet.setName(Utilities.formatDate(new Date(dateCell.getValue()), Session.getScriptTimeZone(), 'dd-MM-yyyy'));
    newSheet.showSheet();

    dateCell.setValue(currentDate);
    sheet.activate();

    // Protéger la nouvelle feuille
    var protection = newSheet.protect().setDescription('Protected Sheet');
    protection.removeEditors(protection.getEditors()); // Retirer tous les éditeurs
    protection.addEditor('votre.email@example.com'); // Ajouter votre email pour l'édition
    protection.setWarningOnly(true); // Afficher un avertissement au lieu de bloquer complètement
  }
}
  • "protection.removeEditors(protection.getEditors()) : Retire tous les éditeurs de la feuille protégée.
  • protection.addEditor('votre.email@example.com') : Ajoute votre email comme éditeur autorisé. Remplacez 'votre.email@example.com' par votre adresse email.
  • protection.setWarningOnly(true) : Affiche un avertissement au lieu de bloquer complètement l'édition. Si vous souhaitez bloquer complètement, utilisez protection.setWarningOnly(false).

Remarques :

  • Google Sheets ne permet pas de protéger une feuille avec un mot de passe comme Excel. La protection se fait par les permissions d'édition.
  • Assurez-vous que la cellule A1 contient la date pour que le script fonctionne correctement."

Bonjour

C'est parfait

Merci beaucoup , merci encore

Rechercher des sujets similaires à "convertir macro vba google sheet"