Convertir VBA Excel en google sheets

Bonjour tout le monde, je suis noob en VBA excel et j'ai réussi à avoir un résultat sur le fichier en pj.

Mon souci c'est que la macro n'est pas convertible sur google sheets. Quelqu'un peut m'aider ? Merci

Une explication de ce que j'ai fait sur excel

En ayant une base de données différente sur 3 feuilles, je souhaite copier et coller ces informations sur la feuille "follow-up".

En commençant par la première base de données "Excess and Obsolete modificatio"
la macro va me copier et coller ces données sur le premier onglet "Follow-up" en tenant compte du premier horodatage déjà existant, à savoir (11/03/2021 14:58:09)

Sub copy_paste2()

Sheets("Follow-up").Select
Range("B2").Select

horodatage_initial = Range("B2").Value

'---recherche horodatage le plus récent sur follow-up-----
Do While ActiveCell <> ""
If ActiveCell.Value > horodatage_initial Then
horodatage_initial = ActiveCell.Value

End If
ActiveCell.Offset(1, 0).Select
Loop

'-----recherche dernière ligne sélectionnée-----
num_ligne = ActiveCell.Row

'---comparer horodatage entre modification et follow-up-----
Sheets("Excess and Obsolete modificatio").Select
Range("B2").Select
Do Until ActiveCell = Empty

Do While ActiveCell <> ""
If ActiveCell.Value > horodatage_initial Then
num_ligne_debut = ActiveCell.Row
Rows(num_ligne_debut).Copy
Sheets("follow-up").Select
Rows(num_ligne).Select
ActiveSheet.Paste
End If
ActiveCell.Offset(1, 0).Select
Loop
num_ligne = ActiveCell.Row
Sheets("Excess and Obsolete modificatio").Select
ActiveCell.Offset(1, 0).Select
Loop

Par la suite la macro va faire la même chose sur les deux autres onlgets de base de données, à copier coller sur "follow-up"

- Excess and Obsolete declaration --> follow-up

- Reservation of Excess and Obsol --> follow-up

Par la suite je précise sur "follow-up" le nom de la feuille où on a collecté ces données (en tenant compte de l'ID)

Sheets("follow-up").Select
Range("A2").Select
Do
If ActiveCell.Value < 100000 Then
ActiveCell.Offset(0, 4).Value = "Modification"
ElseIf ActiveCell.Value >= 100000 And ActiveCell.Value < 1000000000 Then
ActiveCell.Offset(0, 4).Value = "Declaration"
Else
ActiveCell.Offset(0, 4).Value = "Reservation"
End If
ActiveCell.Offset(1, 0).Select
Loop Until ActiveCell.Value = ""

Enfin et pour éviter les doublons, je finis par supprimer les doublons

Sheets("follow-up").Select
Range("A1").Select
Selection.CurrentRegion.Select
ActiveSheet.Range("A:L").RemoveDuplicates Columns:=2, Header:=xlYes

Ca marche bien sur excel, sauf que en important le fichier sur google sheets, il n'a pas importé la macro, et en copiant la syntaxe sur le scrypt GS, il ne reconnait rien

Est ce possible de m'aider s'il vous plaît pour convertir la macro excel sur VBA ? merci encore

18buffer-file.xlsm (25.51 Ko)

Bonjour NBK88 et bienvenue

Peux-tu mettre un lien vers un copie de ton projet sur Google Sheets ?

On ne convertit pas une macro excel en script google,

  • d'abord parce que le langage n'est pas le même (une macro VBA est en code propriétaire microsoft, un script google est dans un langage issu de javascript plus universel),
  • mais ensuite, bien souvent, on n'a pas besoin de script.

Google Sheets possède des fonctions très puissantes telles que query, unique, filter, etc.

S'il s'agit de compiler les informations venant de 3 onglets et ne conserver que des occurrences uniques, il y a des fonctions pour cela. Exemple de la compilation de 3 onglets

=QUERY({
ARRAYFORMULA({IF(ISBLANK('Jacques a'!A2:A);;"Jack") \'Jacques a'!A2:E});
ARRAYFORMULA({IF(ISBLANK('Jean e'!A2:A);;"Jean") \'Jean e'!A2:E});
ARRAYFORMULA({IF(ISBLANK('Jules u'!A2:A);;"Jul") \'Jules u'!A2:E})
};"select * where Col1 <> '' order by Col2")

Bonjour,

Merci de ton retour :) d'accord je comprends mieux maintenant..il ne s'agit pas du même langage.

Si je copie le lien du GS, tu pourras y accéder ?

https://docs.google.com/spreadsheets/d/19vEWMC3dpsiDgIcPbE1uN54D30hmx1mXL5vX_zZEZFA/edit?usp=sharing

une question à part, quelle formation est recommandée pour comprendre et maîtriser le langage google sheets stp ?

Je t'ai envoyé une demande...sinon partage le comme suit https://www.sheets-pratique.com/fr/cours/partage

Dans Google Sheets, il y a 2 grandes parties

  1. les formules dont certaines très élaborées et puissantes : query, unique, transpose, match, filter etc.
  2. les scripts dont l'origine remonte à une ancienne version de javascript

Pour apprendre ... il faut pratiquer, poser des questions spécifiques sur les forum, tu as aussi ici un cours très bien fait par Sébastien https://www.sheets-pratique.com/fr/cours, un chapitre sur query https://www.sheets-pratique.com/fr/query. C'est déjà une base très complète.

Pour les scripts, il faut pratiquer, mais au départ décoder pour savoir comment sont écrites les instructions.

ok, merci pour le partage, je rgarde

Formule en A2, triée par date

=QUERY({
ARRAYFORMULA({IF(ISBLANK('Excess and Obsolete modificatio'!A2:A),,"Excess and Obsolete modificatio") ,'Excess and Obsolete modificatio'!A2:D});
ARRAYFORMULA({IF(ISBLANK('Excess and Obsolete declaration'!A2:A),,"Excess and Obsolete declaration") ,'Excess and Obsolete declaration'!A2:D});
ARRAYFORMULA({IF(ISBLANK('Reservation of Excess and Obsol'!A2:A),,"Reservation of Excess and Obsol") ,'Reservation of Excess and Obsol'!A2:D})
},"select * where Col1 <> '' order by Col3")

aucun script n'est nécessaire, mais la formule est déjà complexe !

Merci oui je vois :D

Une petite chose qui n'est pas dans le bon endroit c'est l'ID, colonne B dans la feuille "follow-up".

De la ligne 3 à la ligne 14, il copie l'horodateur au lieu de copier le num ID.

Comment on peut corriger ça stp ?

C'est juste une question de format qu'il avait gardé !

Rechercher des sujets similaires à "convertir vba google sheets"