Bonsoir
@fcyspm30 ,
Bravo ! Ah ben je m'en souvenais pas de cette astuce.
Cependant cela signifie qu'on analyse à la main (ou plutôt de visu) les résultats pour savoir si toutes les lignes sont justes ou non, et dans le cas contraire on corrige la ligne puis on vérifie encore une fois toutes les lignes et ainsi de suite... Avec peu de lignes c'est faisable mais avec plusieurs centaines de lignes ça risque d'être plus compliqué.
Une formule est l'aboutissement d'un raisonnement. Si à partir d'une structure source définie, on définit un raisonnement pour aboutir au résultat correct alors nul besoin de vérifier le résultat pour toutes les lignes.
Comment savoir si le raisonnement comporte des failles ? C'est compliqué aussi car souvent on oublie des cas particuliers rares ou qui ne sautent pas aux yeux pour les éléments sources. Par exemple pour une entreprise qui s'appellerait "LA CAVE à VIN ANGEVINE", le "
à" met en défaut le raisonnement qui est à la base de la formule. La formule est à adapter.
C'est là où une fonction VBA est souvent plus simple : Chercher le premier terme en partant de la fin qui est en majuscule et retourner ce mot et tous les mots qui sont avant se traduit facilement en code VBA.
J'ai donc écrit ce code (fonction
DebutMaj).
Par curiosité j'ai soumis le problème à COPILOT (
ma première demande à une IA ).
J'ai été surpris par la justesse du code généré par COPILOT.
Si vous voulez voir les deux codes (celui de ma pomme et celui de l'IA), vous pouvez les consulter dans le classeur joint dans Module1. J'ai appelé la fonction générée par l'IA du nom
Copilot (me suis pas foulé). Même l'exemple fourni par COPILOT est judicieux et pertinent.
Les deux raisonnements sont les mêmes si ce n'est que je parcours les mots de la fin vers le début et l'IA parcours les mots du début vers la fin.
Question posée (excusez mon anglais approximatif - je ne savais pas que Copilot parlait français) :
excel VBA : a function that takes a string as input. The function should extract all the words from the beginning of the input until the last word that is in uppercase. The last uppercase word should be in the result of the function.
Exemple fourni par L'IA :
Sub TestExtractUntilLastUppercase()
Dim testString As String
Dim result As String
testString = "HELLO WORLD this IS a Test"
result = ExtractUntilLastUppercase(testString)
MsgBox result ' This will display "HELLO WORLD this IS"
End Sub