Récupération d'une partie d'une valeur

Bonjour,

Dans une liste de cellules, j’ai des valeurs toutes sous le même format (ex : 03/2016).

J’ai besoin via une macro de séparer ces valeurs en deux morceaux :

Morceaux 1 : 03/

Morceaux 2 : 2016

En cherchant, j’ai trouvé la formulation valeur= Left(Range(" A13").Value, InStr(1, Range("A1").Value, "/"))

Mais, j’avoue ne pas vraiment la comprendre et j’arrive à la faire fonctionne pour la partie 03/ mais pas pour la partie 2016

Merci pour votre aide.

Cordialement.

Bonjour,

Là tu n'extrais que la partie gauche... Dis-nous tout ! Tu vas en faire quoi après.

De façon peut-être plus rapide pour disposer simultanément des deux morceaux :

Dim éclats
éclats = Split(Range("A13").Value, "/")
éclats(0) = éclats(0) & "/"

A ce stade tu disposeras d'une variable contenant un tableau de 2 éléments (d'indices 0 et 1) contenant chacun un éclat (c'est bien éclater que tu voulais de ta valeur initiale. Reste à savoir ce que tu veux en faire ou bien où tu veux déposer chacun.

Cordialement.

En fait, je souhaite séparer la valeur en deux morceaux pour me permettre une opération sur la seconde moitié et au final recoller le tout pour obtenir une nouvelle date :

exemple : je pars d'une date 03/2016 à laquelle je doit ajouter 3 ans

je sépare

val1 = 03/

val2 = 2016

je calcule la prochaine date

val2=2016+3

puis je recolle le tout dans une cellule pour avoir la nouvelle date

result=val1 & val2

Tout bêtement

Re,

Si tu as une valeur texte dans ta cellule tu peux poursuivre avec mon exemple :

Sub TroisAnsPlus()
    Dim éclats
    éclats = Split(Range("A13").Value, "/")
    éclats(1) = Val(éclats(1)) + 3
    Range("A13").Value = Join(éclats, "/")
End Sub

Tu peux remplacer les noms de variables et de proc. évidemment... Tu arriverais d'ailleurs au même résultat avec le découpage que tu as indiqué.

Si tu as une valeur date, tu peux faire directement :

Sub TroisAnsPlus_2()
    Range("A13").Value = DateAdd("yyyy", 3, Range("A13").Value)
End Sub

Les solutions sont nombreuses pour aboutir à ce que tu veux.

Bonne soirée.

La méthode du tableau fonctionne nickel.

Super.

Merci Beaucoup.

Bonne soirée à vous.

Bonjour,

J'ai une question dans le même genre.

J'ai une seule colonne dans un fichier1 comprenant le prénom et nom de la personne, je souhaiterai les séparer et les mettre dans deux colonne prénom et nom d'un autre fichier2 ?

Exemple:

fichier1=>Colonne A= Romain Bernard

dans les fichier 2 je récupère les prénom et nom séparément pour les mettre comme suit

Fichier2 =>Colonne A= Romain

Fichier2 => Colonne B= Bernard

Merci pour votre aide.

Ne squatte pas DebExcel93 !!

Ouvre ton sujet.

Donne les détails utiles, n'escamote pas les noms en plusieurs mots ni les prénoms composés, et mets un fichier représentatif car là c'et indispensable.

Cordialement.

Je suis désolée. Merci pour votre retour.

Bonjour,

Hier tout fonctionnait bien et aujourd'hui ça ne veux plus.

La seule différence : hier j'avais testé sur un fichier teste avec peu d'infos

Aujourd'hui sur mon vrai fichier avec beaucoup plus de donnée

Apparemment, quand je copie colle les infos à prendre et à modifier (ou que les extraie via une autre macro), j'ai le message d'erreur suivant :

Erreur d'application 9 : l'indice n'appartient pas à la sélection

sur la ligne eclats(1) = Val(eclats(1)) + recyclage

Je ne sais pas pourquoi.

Cordialement.

C'est sans doute que ta donnée n'a pas la même structure que celle qui a servi de modèle. Il n'y a par exemple par de "/" et donc éclats(1) n'existe pas.

Bonjour,

Ce sont pourtant les mêmes schéma de données. exemple : 03/2016

J'ai d'ailleurs fait des listes déroulantes sur les plages à saisir pour éviter des données non conformes.

Est ce que le format de ma cellule peut être le problème? (j'ai mis les cellules en format texte)?

Merci.

Cordialement.

Là ! si j'ai un conseil, c'est de ne jamais mettre de cellule en format texte !

Ce n'est pas forcément ça qui cause le problème en cause, mais le fait que contrairement aux autres ce format quand on le met ou quand on l'enlève ne s'applique pas au contenu actuel de la cellule mais au contenu qui y sera entré après changement de format est source de nombreux problème.

Ceci étant, je ne fais pas de la divination à distance, les éléments que j'ai ne me permettent pas de te dire d'où vient le problème.

Bonjour,

En fait, après divers tests, mon problème doit se situer ailleurs dans mon code.

En effet, sur les lignes saisies cela fonctionne sans problème et dès que je dois passer une ligne vide, c'est là que ça bug.

Donc la solution fonctionne parfaitement, à moi de me débrouiller pour la faire fonctionner à chaque coup.

Merci.

Cordialement.

Rechercher des sujets similaires à "recuperation partie valeur"