Importer macro Excel vers google sheets

Bonjour,

Est-il possible d'importer une macro excel vers google sheets ?

Voici ce que j'aimerais importé sur google sheets. Quelqu'un pourrait m'aider à transcrire cela pour google sheets svp :

Sub actualiser_Bilan_Sportif_dujour()
Dim w As Worksheet, x As Worksheet, y As Worksheet, z As Worksheet
Dim Rng As Range
Dim lrow_w As Long, lrow_x As Long
Dim i As Integer
Dim t As Date

Set w = Sheets("Suivi")
Set x = Sheets("Bilans sportifs")

lrow_w = w.Cells(Rows.Count, 3).End(xlUp).Row
lrow_x = x.Cells(Rows.Count, 3).End(xlUp).Row

x.Range("B3:E" & lrow_x + 2).Clear
On Error Resume Next

With x
    j = 3
    For i = 8 To lrow_w
        If w.Cells(i, 10).Value = .Cells(1, 4).Value Then
            .Cells(j, 2).Value = w.Cells(i, 3).Value
            .Cells(j, 3).Value = w.Cells(i, 4).Value
            .Cells(j, 4).Value = w.Cells(i, 5).Value
            .Cells(j, 5).Value = "À modifier"
            j = j + 1
        End If
    Next i
End With

MsgBox "Actualisation terminée"
End Sub

et

Sub actualiser_Bilan_Sportif()
Dim w As Worksheet, x As Worksheet, y As Worksheet, z As Worksheet
Dim Rng As Range
Dim lrow_w As Long, lrow_x As Long
Dim i As Integer

Set w = Sheets("Suivi")
Set x = Sheets("Bilans sportifs")

lrow_w = w.Cells(Rows.Count, 3).End(xlUp).Row
lrow_x = x.Cells(Rows.Count, 3).End(xlUp).Row

x.Range("B3:E" & lrow_x + 2).Clear
On Error Resume Next

With x
    j = 3
    For i = 8 To lrow_w
        If w.Cells(i, 10).Value < .Cells(1, 4).Value Then
            .Cells(j, 2).Value = w.Cells(i, 3).Value
            .Cells(j, 3).Value = w.Cells(i, 4).Value
            .Cells(j, 4).Value = w.Cells(i, 5).Value
            .Cells(j, 5).Value = "À modifier"
            j = j + 1
        End If
    Next i
End With

MsgBox "Actualisation terminée"
End Sub

Merci infiniment pour vos réponses

Bonjour,

comme les 2 macros sont identiques mis à part le nom, je ne te mets qu'une macro

function actualiser_Bilan_Sportif_dujour(){
  var Twb=SpreadsheetApp.getActiveSpreadsheet();

  var w = Twb.getSheetByName('Suivi');
  var x = Twb.getSheetByName('Bilans sportifs');
  var lrow_w = w.getLastRow();
  var lrow_x = x.getLastRow()+2;

  x.getRange(3,2,5, lrow_x).clear();

    var j = 3;
    for (var i=8;i<=lrow_w;i++){
        if (w.getRange(i,10).getValue().toString() == x.getRange(1,4).getValue().toString()) {
            w.getRange(i,3,i,5).copyTo(x.getRange(j,2));
            x.getRange(j,5).setValue("À modifier");
            j++;
        }
    }
    Browser.msgBox("Actualisation terminée");
};

Salut

Merci pour tes codes mais cela ne fonctionne pas. Rien ne se passe.

Peux-tu me dire comment faire pour importer ce code sur mon document stp ?

Merci par avance

Bonjour,

très étrange que tu dises que cela ne fonctionne pas alors que tu ne sais pas ce qu'il faut faire pour l'importer

pour importer la macro

1) copier le code de la macro du forum

2) ouvrir le document google sheet

3) menu->outils->editer script

un nouvelle fenetre s'ouvre

4) coller le code de la macro

5) donner un nom au projet

6) sauver la macro

ensuite il faut configurer la sécurité d'exécution de la macro (la première fois)

7) lancer la macro via menu->executer->nom de la macro

  • >demande autorisation
  • >revoir permission
  • >choisir le compte autorisé
message cette application n'est pas validée
  • >paramètres avancés
  • >accéder à mon projet (non sécurisé)
  • >autoriser
8) retour dans google sheet

menu->outils->macros->importer ajouter la fonction actualiser_bilan_sportif_dujour

9) sauver

la macro est installée et prête à l'emploi

la lancer via menu->outils->macro-> nom de la macro

Boularidnho je suis vraiment déçu

https://forum.excel-pratique.com/viewtopic.php?f=2&t=122531&start=20

Merci pour ta reconnaissance!

Bonjour,

effectivement, m3ellem1 t'avait déjà proposé une solution. Ce n'est pas sympa de ne pas lui donner de retour, ni de me laisser plancher sur une question qui avait déjà une réponse.

Je t'invite à (re?)jeter un oeil sur les instructions et conseils de bonne utilisation du forum.

Merci h2so4,

pour info, il est entrain de comparer des dates et non pas des nombres. Donc je pense que c‘est pourcela que ca fonctionne pas. Voir ma solution alors qui fonctionne sans problemes!

@+++

De retour après immersion totale. Désolé pour ces longs moments sans retour.

J'ai essayé en vain et à plusieurs reprises. J'ai effacé, recommencé et relancer la chose mais rien ne se passe.

J'ai été dans l'éditeur de script pour coller vos codes puis enregistrer. Ensuite sur le document, j'ai été dans outils = importer =ajouter la sélection et j'ai lancé la macro et rien...

Je dois être très fatigué pour ne pas y parvenir.

Je m'arrache les cheveux pour trouver mais rien.

Je n'ose même plus vous demander comment faire tellement j'ai honte !

Avec mes considération et ma reconnaissance

Merci

Bonjour,

comme je l'avais déjà dit,

ou bien t'utilise mon script ou bien t'adapte le script d'h2so4 .

Tu es entrain de comparer des DATES!!!!!!!! il faut donc absolument utiliser ".toString()"

Bonne journée

bonjour,

effectivement si le critère pour copier est une date, le code ne fonctionne pas tel quel, il faut prendre la solution de m3ellem1 ou le code ci-dessus que j'ai modifié.

bonjour,

effectivement si le critère pour copier est une date, le code ne fonctionne pas tel quel, il faut prendre la solution de m3ellem1 ou le code ci-dessus que j'ai modifié.

Bonjour,

Merci h2So4

Où se trouve ton code ? Merci

Dans ma première réponse

bonjour,

effectivement si le critère pour copier est une date, le code ne fonctionne pas tel quel, il faut prendre la solution de m3ellem1 ou le code ci-dessus que j'ai modifié.

Bonjour,

Merci h2So4

Où se trouve ton code ? Merci

Bonjour,

Je me permet de relancer le sujet car j'ai une petite macro excel de deux lignes que j'aimerais adapter à un fichier google sheet dans le but de le partager dans le drive. J'aimerais donc savoir si vous avez des ressources pour apprendre à coder sous google sheet.

Private Sub WorkSheet_Change(ByVal Target As Range)

If Target.Column = 1 Or Target.Column = 2 Or Target.Column = 3 Or Target.Column = 4 Or Target.Column = 6 Then
Cells(Target.Row, 5) = Now
End If

End Sub

Voici mon code, je ne demande pas forcément de me faire le travail mais au moins de m'aider pour savoir où je peux trouver les différentes fonctions par exemple. Merci d'avance

Cordialement

Melvin

Bonjour JMD,

Si tu vois ce message, j'ai bien reçu ton message privé mais je ne peux pas te répondre, je te répond donc ici.

Merci pour l'information, dans ma situation ça ne me sera pas utile car je ne serais jamais avec autant de ligne, ce fichier sera plutôt petit et je dois travailler avec un collègue dessus, d'où le drive. Mais je garde ta réponse et je l'utiliserais surement pour une autre application. Merci beaucoup pour ta réponse

Melvin

Après quelques recherches, j'ai un début de réponse je pense :

var range = « A1:A1000 »;

function Worksheet_Change() {

Set.value(‘Cellule programmée : ‘+range +’); 

}

Je pense faire un truc du genre, pour l'instant ça ne fonctionne pas mais je m'explique, je sélectionne des ranges (mes colonnes) pour l'exemple je teste avec une colonne d'abord. Ensuite je dois faire en sorte de mettre la date dans la cellule souhaitée (en cours de recherche) et ensuite avec les déclencheurs, il faut que je puisse activer ma macro uniquement quand les cellules de mes ranges sont modifié.

Salut Boularidnho, salut le Forum,

à tester

function onEdit(e) {
  var row = e.range.getRow();
  var col = e.range.getColumn();

if (col == 1 || col == 2 || col == 3 || col == 4 || col == 6) {
  var range = SpreadsheetApp.getActiveSpreadsheet().getRange("E"+ row);
  range.setValue(new Date()).setNumberFormat("dd.mm.yyyy hh:mm");
  }
};

Bonne nuit

Bonjour,

Tout d'abord, merci pour ta réponse. Je vais essayer cela et je reviens vers toi.

Cordialement

Melvin

Re bonjour,

Je viens d'essayer et voici l'erreur :

"TypeError: Cannot read property 'range' of undefined (ligne 2, fichier "Code")"

Problème de fonction ou de déclaration d'une variable ?

Cordialement

non mais il faut pas exécuter la macro manuellement!

Il faut juste sauvegarder et aprés il faut faire un changement dans les colonne 1,2,3...,6

et voir le resultat

Rechercher des sujets similaires à "importer macro google sheets"