Equivalent VBA de la fonction "Gauche" ou "droite"

Bonjour,

J'ai une série de fiches .xls dont je veux transférer quelques cellules (la 1° est un nom) dans une feuille .xls comportant 36 onglets nommés des 36 lettres de l'alphabet.

Je cherche la fonction VBA qui me permettra d'ouvrir l'onglet correspondant à l'initiale du nom, équivalent de GAUCHE(A1;1) sous excel.

Merci d'avance

Jimjack

Bonjour,

Je crains que cela ne va pas être possible, à moins de te limiter aux 26 premières (et seules) lettres de l'alphabet....

Sinon, regarde du côté de Left() et Right()

Bon dimanche

Merci pour ta réponse. Ok pour 26, autant pour le bug de mon doigt

Left indentifie bien l'initiale, la MsgBox l'affiche, mais je bute sur l'ouverture de la feuille

Ci-dessous mon code, la dernière ligne me renvoie que l'indice ne fait pas partie de la sélection. Je ne trouve pas l'erreur.

'On a 2 répertoires et leur contenu : " Source " contenant les fiches -contact

'" Destination " contenant le fichier " BDD_Do_RDV "

'Ce fichier comporte 26 onglets correspondant aux 26 lettres de l'alphabet

'Ces deux répertoires sont encapsulés dans un répertoire "System_Do_RDV"

'qu'on place sous la racine pour faire fonctionner la macro.

'Etapes de la macro:

'On ouvre les fiches contact et leur onglet " TransfertBDD "

'On détecte l'initiale du Nom (cellule E)

'On ouvre le fichier " BDD_Do_RDV " à l'onglet de cette initiale

' On recherche la 1° ligne vide,

'On repart dans la fiche contact

'On sélectionne les cellules E, F, K, L, AS et AV qu'on copie,

'On active le fichier "BDD_Do_RDV"

'On colle les cellules sélectionnées dans les cellules A à F

'On recherche le doublonnage, et si oui, on annule le collage,

'On passe à la fiche suivante,

'Après la dernière fiche, on affiche un message de fin et d'enregistrement.

Dim Var As Workbook

Dim War As Workbook

Dim FichierSource As String

Dim NomFichierSource As String

Dim Init As String

'Init = Initiale du nom

Dim NF As Integer

' NF= N° de fichier dans le dossier Source

Dim OC As Integer

' OC = Nombre de lignes occupées

Dim NL As Integer

' NL = N° de ligne dans la feuille active du fichier Destination/BDD_ Rappels_RDV = NF + Nombre de lignes occupées

'On définit les variables et on initie la boucle de recherche

NF = 1

NomFichierSource = Dir("C:\System_Do_RDV\Source" & "\*.*")

Do While NomFichierSource <> ""

Set Var = GetObject("C:\System_Do_RDV\Source" & "\" & NomFichierSource)

Set War = GetObject("C:\System_Do_RDV\Destination\" & "BDD_Do_RDV.xls")

'On ouvre le fichier source et l'onglet "Transfert_BDD"

Var.Activate

Sheets("TransfertBDD").Select

'On sélectionne la cellules E

Range("E2").Select

'On identifie l'initiale du nom pour ouvrir l'onglet correspondant

Init = Left((Range("E" & 2).Value), 1)

MsgBox ("Init=" & (Init))

'On ouvre le fichier "Destination / BDD_Do_RDV" à l'onglet correspondant à l'initiale

'et on compte le nombre de lignes occupées

War.Activate

Sheets("Init").Select

Bonsoir,

Et en mettant ainsi :

Sheets(CStr(Init)).Select

En toute fin de ton code (imbuvable, entre parenthèses.... il y a des balises qui permettent de présenter des codes, citations, et autres ...)

Bonne soirée

Connaissais pas ce code, merci de me le livrer.

Je sais bien que mon code n'est comestible que par les sauvages .... mais bon, 6 mois seulement après la découverte de VBA, j'arrive à bâtir des trucs qui marchent.... quoique. L'élégance sera pour plus tard.

Merci encore.

Jimjack

Re-,

Je ne parlais pas de ton code, proprement dit, mais des outils mis à la disposition des forumeurs, et notamment des utilisateurs de ce site, afin de présenter correctement leur code...

Regarde mes posts, les codes sont intégrés dans des "balises"....

bonne soirée, et content que cela fonctionne

OK, ce n'est pas évident au 1° coup d'oeil. Mais on apprend vite ! Même au 3° âge. Au 4° on verra ....

Merci de tes conseils, ma macro marche super à présent.

Jimjack

Rechercher des sujets similaires à "equivalent vba fonction gauche droite"