Importer macro excel vers google sheets

Y compris Google Docs, Slides et toute autre question en lien avec une application Google
B
Boularidnho
Jeune membre
Jeune membre
Messages : 23
Inscrit le : 24 septembre 2017
Version d'Excel : Mac 2011

Message par Boularidnho » 3 avril 2019, 12:09

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 :wink:
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 8'507
Appréciations reçues : 283
Inscrit le : 16 juin 2013
Version d'Excel : 2013 UK Windows 10

Message par h2so4 » 4 avril 2019, 13:21

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");
};
Modifié en dernier par h2so4 le 13 avril 2019, 10:40, modifié 2 fois.
B
Boularidnho
Jeune membre
Jeune membre
Messages : 23
Inscrit le : 24 septembre 2017
Version d'Excel : Mac 2011

Message par Boularidnho » 4 avril 2019, 22:05

h2so4 a écrit :
4 avril 2019, 13:21
Bonjour,

comme les 2 macros sont identiques au nom près, 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() == x.getRange(1,4).getValue()) {
            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
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 8'507
Appréciations reçues : 283
Inscrit le : 16 juin 2013
Version d'Excel : 2013 UK Windows 10

Message par h2so4 » 5 avril 2019, 10:24

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 :bof:

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
1 membre du forum aime ce message.
m
m3ellem1
Membre dévoué
Membre dévoué
Messages : 904
Appréciations reçues : 68
Inscrit le : 18 décembre 2018
Version d'Excel : 2016

Message par m3ellem1 » 6 avril 2019, 13:05

Boularidnho je suis vraiment déçu :#@&: :#@&:

viewtopic.php?f=2&t=122531&start=20

Merci pour ta reconnaissance!
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 8'507
Appréciations reçues : 283
Inscrit le : 16 juin 2013
Version d'Excel : 2013 UK Windows 10

Message par h2so4 » 6 avril 2019, 15:17

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.
Modifié en dernier par h2so4 le 6 avril 2019, 17:11, modifié 1 fois.
m
m3ellem1
Membre dévoué
Membre dévoué
Messages : 904
Appréciations reçues : 68
Inscrit le : 18 décembre 2018
Version d'Excel : 2016

Message par m3ellem1 » 6 avril 2019, 17:04

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!

@+++
B
Boularidnho
Jeune membre
Jeune membre
Messages : 23
Inscrit le : 24 septembre 2017
Version d'Excel : Mac 2011

Message par Boularidnho » 12 avril 2019, 18:14

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
m
m3ellem1
Membre dévoué
Membre dévoué
Messages : 904
Appréciations reçues : 68
Inscrit le : 18 décembre 2018
Version d'Excel : 2016

Message par m3ellem1 » 13 avril 2019, 05:50

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
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 8'507
Appréciations reçues : 283
Inscrit le : 16 juin 2013
Version d'Excel : 2013 UK Windows 10

Message par h2so4 » 13 avril 2019, 10:42

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é.
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message