Salutations,
J'aimerais solliciter votre aide, je ne connais pas du tout google sheets mais je me débrouille avec le VBA.
J'ai fait un programme qui fonctionne sur excel mais je ne sais pas comment le traduire en script.
Sub CopieFeuilleManager()
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim D As Object 'déclare la variable D (Dictionnaire)
Dim I As Integer 'déclare la variable I (Incrément)(ligne)
Dim J As Integer 'déclare la variable J (incrément)(variable)
Dim K As Integer 'déclare la variable K (incrément)(colonne)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim TMP As Variant 'déclare la variable TMP (tableau TeMPoraire)
Dim TL() As Variant 'déclare la variable TL (Tableau des Lignes)
Set OS = Worksheets("Base de donnée") 'définit l'onglet OS
TV = OS.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
Set D = CreateObject("Scripting.Dictionary") 'définit le dictionnaire D
For I = 2 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde)
D(Left(TV(I, 1), 1)) = "" 'alimente le dictionnaire D avec les deux premiers caractères de la donnée ligne I colonne 1 de TV
Next I 'prochaine ligne de la boucle
TMP = D.Keys 'récupère dans le tableau temporaire TMP la liste des départements du dictionnaire D sans doublons
For J = 0 To UBound(TMP) 'boucle 1 : sur tous les départements J du tableau temporaire TMP
K = 0: Erase TL 'initialise K, efface TL
On Error Resume Next 'gestion des erreurs (en cas d'erreur passe à la ligne suivante)
Set OD = Worksheets(TMP(J)) 'définit l'onglet destination OD (l'onglet du département), génère une erreur si cet onglet n'existe pas
If Err > 0 Then 'condition : si une erreur a été générée
Err.Clear 'supprime l'erreur
Worksheets.Add After:=Sheets(Sheets.Count) 'ajoute une onglet vierge en dernière position
Set OD = ActiveSheet 'définit l'onglet OD
OD.Name = TMP(J) 'nomme l'onglet OD
End If 'fin de la condition
On Error GoTo 0 'annule la gestion des erreurs
OD.Cells.Clear 'efface le contenu de l'onglet OD
OD.Range("A1").Resize(1, UBound(TV, 2)).Value = Application.Index(TV, 1) 'recopie la ligne d'en-têtes
For I = 2 To UBound(TV, 1) 'boucle 2 : sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde)
If Left(TV(I, 1), 1) = TMP(J) Then 'si les deux premiers caractères de la donnée de la boucle 2 en colonne 1, correspondent au département J de la boucle 1
K = K + 1 'incrémente K
ReDim Preserve TL(1 To 11, 1 To K) 'redimensionne le tableau des lignes TL (3 lignes, K colonnes)
TL(1, K) = TV(I, 1) 'récupère dans la ligne 1 de TL la donnée en colonne 1 de TV (=> transposition)
TL(2, K) = TV(I, 2) 'récupère dans la ligne 2 de TL la donnée en colonne 2 de TV (=> transposition)
TL(3, K) = TV(I, 3) 'récupère dans la ligne 3 de TL la donnée en colonne 3 de TV (=> transposition)
TL(4, K) = TV(I, 4) 'récupère dans la ligne 1 de TL la donnée en colonne 1 de TV (=> transposition)
TL(5, K) = TV(I, 5) 'récupère dans la ligne 2 de TL la donnée en colonne 2 de TV (=> transposition)
TL(6, K) = TV(I, 6) 'récupère dans la ligne 3 de TL la donnée en colonne 3 de TV (=> transposition)
TL(7, K) = TV(I, 7) 'récupère dans la ligne 1 de TL la donnée en colonne 1 de TV (=> transposition)
TL(8, K) = TV(I, 8) 'récupère dans la ligne 2 de TL la donnée en colonne 2 de TV (=> transposition)
TL(9, K) = TV(I, 9) 'récupère dans la ligne 3 de TL la donnée en colonne 3 de TV (=> transposition)
TL(10, K) = TV(I, 10) 'récupère dans la ligne 1 de TL la donnée en colonne 1 de TV (=> transposition)
TL(11, K) = TV(I, 11) 'récupère dans la ligne 1 de TL la donnée en colonne 1 de TV (=> transposition)
End If 'fin de la condition
Next I 'prochaine ligne de la boucle 2
'si K est supérieure à zéro, renvoie le tableau TL transposé dans A2 redimensionnée de l'onglet OD
If K > 0 Then OD.Range("A2").Resize(K, UBound(TV, 2)).Value = Application.Transpose(TL)
Next J 'prochain département de la boucle
End Sub
Sub ModifNoms()
Sheets("1").Select
Sheets("1").Name = "CHEVRIER Laurent"
Sheets("2").Select
Sheets("2").Name = "VILAIN Benjamin"
Sheets("3").Select
Sheets("3").Name = "BENETREAU François"
Sheets("4").Select
Sheets("4").Name = "COUTURIER Coline"
Sheets("5").Select
Sheets("5").Name = "DESMARE Alban"
Sheets("6").Select
Sheets("6").Name = "PABOT Clément"
Sheets("7").Select
Sheets("7").Name = "SOULAGES Thibault"
Sheets("8").Select
Sheets("8").Name = "Externe"
Sheets("0").Select
Sheets("0").Name = "Consltants Partis"
End Sub
Sub RetourN°()
Sheets("CHEVRIER Laurent").Select
Sheets("CHEVRIER Laurent").Name = "1"
Sheets("VILAIN Benjamin").Select
Sheets("VILAIN Benjamin").Name = "2"
Sheets("BENETREAU François").Select
Sheets("BENETREAU François").Name = "3"
Sheets("COUTURIER Coline").Select
Sheets("COUTURIER Coline").Name = "4"
Sheets("DESMARE Alban").Select
Sheets("DESMARE Alban").Name = "5"
Sheets("PABOT Clément").Select
Sheets("PABOT Clément").Name = "6"
Sheets("SOULAGES Thibault").Select
Sheets("SOULAGES Thibault").Name = "7"
Sheets("Externe").Select
Sheets("Externe").Name = "8"
Sheets("Consltants Partis").Select
Sheets("Consltants Partis").Name = "0"
End Sub
Merci de votre aide
KMH