[Excel] Demande d'aide sur cas simple
Nicow
-
Nicow -
Nicow -
Bonjour,
Je suis actuellement en stage pour 3 mois et je voudrais un code qui ferait passer cette durée à 2 mois (ou moins si c'est possible).
Mon problème :
Mon logiciel exporte des données d'un fichier sous forme de quatre colonnes de chiffre en .csv. Lorsque j'ouvre silmutanément plusieurs fichiers pour aller plus vite, et que j'exporte en .csv, le logiciel me colle les quatre colonnes de chaque fichier "à la suite". Moi je voudrais les déplacer et les mettre côte à côte.
Un petit schéma :
Situation initiale :
colonne 1 colonne 2 colonne 3 colonne 4
chiffre >> chiffre >> chiffre >> chiffre
.
. fichier 1
.
chiffre >> chiffre >> chiffre >> chiffre
chiffre >> chiffre >> chiffre >> chiffre
.
. fichier 2
.
chiffre >> chiffre >> chiffre >> chiffre
But :
colonne 1 colonne 2 colonne 3 colonne 4 >>> colonne 5 colonne 6 colonne 7 colonne 8
chiffre >> chiffre >> chiffre >> chiffre >>>>> chiffre >> chiffre >> chiffre >> chiffre
. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> .
. >>>>>>>> fichier 1 >>>>>>>>>>>>>>>>>> . >>>>>>>>>>>>fichier 2
. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> .
chiffre >> chiffre >> chiffre >> chiffre >>>>> chiffre >> chiffre >> chiffre >> chiffre
Une petite indication utile, dans la colonne 2, chaque fichier part de 0 et croit jusqu'à un chiffre à virgule indéterminé.
Voilà j'ai une multitude de fichier excel avec en moyenne une centaine de fichiers. Je n'y connais rien en VBA et programmation excel, mais je suis débrouillard, alors soyez un minimum précis s'il vous plaît et ce serait gentil de m'aider vous ferez un heureux :).
Merci à vous.
Je suis actuellement en stage pour 3 mois et je voudrais un code qui ferait passer cette durée à 2 mois (ou moins si c'est possible).
Mon problème :
Mon logiciel exporte des données d'un fichier sous forme de quatre colonnes de chiffre en .csv. Lorsque j'ouvre silmutanément plusieurs fichiers pour aller plus vite, et que j'exporte en .csv, le logiciel me colle les quatre colonnes de chaque fichier "à la suite". Moi je voudrais les déplacer et les mettre côte à côte.
Un petit schéma :
Situation initiale :
colonne 1 colonne 2 colonne 3 colonne 4
chiffre >> chiffre >> chiffre >> chiffre
.
. fichier 1
.
chiffre >> chiffre >> chiffre >> chiffre
chiffre >> chiffre >> chiffre >> chiffre
.
. fichier 2
.
chiffre >> chiffre >> chiffre >> chiffre
But :
colonne 1 colonne 2 colonne 3 colonne 4 >>> colonne 5 colonne 6 colonne 7 colonne 8
chiffre >> chiffre >> chiffre >> chiffre >>>>> chiffre >> chiffre >> chiffre >> chiffre
. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> .
. >>>>>>>> fichier 1 >>>>>>>>>>>>>>>>>> . >>>>>>>>>>>>fichier 2
. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> .
chiffre >> chiffre >> chiffre >> chiffre >>>>> chiffre >> chiffre >> chiffre >> chiffre
Une petite indication utile, dans la colonne 2, chaque fichier part de 0 et croit jusqu'à un chiffre à virgule indéterminé.
Voilà j'ai une multitude de fichier excel avec en moyenne une centaine de fichiers. Je n'y connais rien en VBA et programmation excel, mais je suis débrouillard, alors soyez un minimum précis s'il vous plaît et ce serait gentil de m'aider vous ferez un heureux :).
Merci à vous.
26 réponses
- 1
- 2
Suivant
-
Bonjour,
Mon logiciel exporte des données d'un fichier ??? lequel
Voilà j'ai une multitude de fichier excel avec en moyenne une centaine de fichiers certainement !!!!
alors soyez un minimum précis s'il vous plaît et vous ?? -
Bonjour,
C'est gentil de répondre, néanmoins je ne comprend pas votre réaction, j'ai essayé d'être un maximum précis sur le principe, quant au logiciel il ne vous dira absolument rien car très spécifique et réservé au monde industriel et je suis également soumis à des règles de confidentialité.
Ensuite, je vais essayé de résumer mon problème. Mon logiciel me sort chaque fichier sous forme de quatre colonne de chiffre, les uns à la suite des autres, et la seule manière de différencier le début de la fin d'un fichier c'est la récurrence de la deuxième colonne (qui va de zéro jusqu'à un nombre indéterminé).
Quand je demandais d'être précis, je pensais surtout à l'utilisation de la console VBA s'il y a besoin de rentrer du code.
Ce que je pense qu'il est possible de faire, c'est de créer un code qui sépare tous les fichiers (en repérant les lignes entre deux zéros de la deuxième colonne par exemple) et de me les décaler de manière à ce que la première ligne de chaque fichier (celle qui comporte le zéro à la deuxième colonne) s'ajuste avec la première ligne du fichier précédent mais quelques colonnes plus loin.
Est-ce assez précis ?
Merci de votre attention -
Bonjour,
C'est gentil de répondre, néanmoins je ne comprend pas votre réaction
Ma reaction n'est pas épidermique, mais je vois que cette fois, vous avez ete tres precis dans votre demande. Il faut bien comprendre que nous ne voyons pas ce que vous faites, ni vos fichiers, donc l'expose de votre demande est capital pour que vous puissiez avoir une solution correspondant a votre attente.
Details supplementaires: quel excel avez-vous, fichier csv avec quel separateur ???? -
Bonjour,
Oui je comprend parfaitement que vous n'avez pas le même point de vu que moi mais je pensais avoir été assez précis dès le début. Enfin bref si vous comprenez un peu mieux mon cas maintenant, le but est atteint.
Je vais vous décrire comment je traite le csv pour le mettre en forme dans une feuille excel.
Assistant Importation de texte
Etape 2 sur 3 : Séparateur à virgule.
Etape 3 sur 3 : Avancé\Séparateur de décimale : un point "."
Version : Microsoft Office Professional Plus 2010 -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Re,
je regarde cela.
A+ -
Re,
un exemple de code, le bouton import_fichier peut vous servir si le fichier importe a toujours le meme nom. J'ai teste avec un fichier csv separateur ".". A vous de tester et de rendre compte.
https://www.cjoint.com/c/CGkpJlssIHo
A+ -
Salut,
merci pour votre aide !
Alors, tout d'abord, j'ai besoin d'un séparateur à virgule pour mes fichiers .csv, si vous me dites comment faire je peux aller changer cela.
Sinon, j'ai copier mon csv dans les colonnes A, B, C, D, et appuyé sur Traitement_Fichier; ça a fait quelque chose mais alors pour comprendre ce que ça a fait... Il a découpé certaine partie du fichier et les a décalé en haut à droite, c'est tous ce que je peux dire. -
Bonjour,
Je vais vous décrire comment je traite le csv pour le mettre en forme dans une feuille excel.
Assistant Importation de texte
Etape 2 sur 3 : Séparateur à virgule
Etape 3 sur 3 : Avancé\Séparateur de décimale : un point "."
Vous pouvez faire l'import directement comme ci-dessus sur la feuil1
pour la macro Import_fichier: remplacez le "." par "," voir ci-dessous
.TextFileOtherDelimiter = ","
si vous voulez l'utiliser.
ça a fait quelque chose mais alors pour comprendre ce que ça a fait... Il a découpé certaine partie du fichier et les a décalé en haut à droite, c'est tous ce que je peux dire. Sauf erreur de ma part cela fait ce que vous avez demande:
feuil1----> donnees importees
feuil2----> decoupage des donnees importees par paquets "entre" deux 0 via le code associe au bouton (VBA feuil1)
La localisation des donnees decoupees est peut-etre a discuter.
Le code est commente pour le bouton Traitement_Fichier, vous pourrez comprendre ce qui se passe.
A+ -
Bonjour,
Le séparateur de décimale est bien un point, mais le séparateur de colonne est une virgule.
Ca découpe et ça déplace au bon endroit, mais pas par paquet de fichier (colonne 2, de 0 à chiffre indéterminé).
Je vais essayer de corriger moi même, j'ai fait un peu de C++ fut un temps, j'ai juste une question :
Comment puis-je modifier le code derrière les boutons ? :)
merci -
Re,
Dans ce que je vous ai donne: debut fichier 0 colonne 2 et fin de fichier ligne avant 0 suivant.
A+ -
-
Re,
pour acceder au code VBA:
appuyez sur alt+F11
en haut a gauche: double clic sur feuil1
code dans fenetre de droite
comment sont decoupees vos fichiers ??? A quel endroit avez-vous le 0 colonne 2
votre 0: c'est 0 ou 0,00 ou ??
A+ -
Bonjour,
Mon 0 est un "0.00".
Je vous envoie un .csv, les colonnes se séparent par virgule, et les points sont les virgules des nombres décimaux (excel en français ne comprend pas les chiffre à point, alors je les change en virgule).
http://cjoint.com/?3GlkCVLEV2q
Merci -
Re,
Il est donc normal que la decoupe ne soit pas bonne: 0 c'est pas 0.00
je vous modifie la chose avec ou sans les entetes de colonnes ???
A+ -
Re,
AAAh ok, Excel modifie le 0.00 en 0 quand on importe le csv, je comprend maintenant que le code s'applique au .csv brut.
Avec les entêtes des colonnes ce serait parfait :).
Merci -
Re,
fichier modifie et teste avec votre fichier csv (bouton import invalidé), si vous avez besoin de l'utiliser, faites signe
https://www.cjoint.com/c/CGlls18s2fe
A+ -
Ouaah nickel, ça marche au poil ! Merci encore !
Mon travail maintenant c'est de faire un graphique avec en X la colonne 2 et en Y la colonne 3, de chaque fichier, est-ce qu'une macro est envisageable dans ce cas ? -
Re,
tout est envisageable. -
-
Bonjour,
Oui, deux codes pour que vous puissiez y reflechir:
il faut que le separateur de decimal de vos donnees corresponde a celui d'excel
'pour un graph:Sub Test_new_sheet() Set new_sheet = Charts.Add new_sheet.Name = "L1" new_sheet.ChartType = xlLineMarkers new_sheet.SeriesCollection.NewSeries new_sheet.SetSourceData Source:=Range("feuil2!B2:C240") new_sheet.SeriesCollection(1).XValues = "=Feuil2!$B$2:$B$240" new_sheet.SeriesCollection(1).Name = "=Feuil2!$C$1" End Sub
'pas modifie pour votre fichierSub Test_same_sheet() Dim Grf As ChartObject Dim Sh As Worksheet Set Sh = Sheets("feuil1") 'EDIT On supprime le graphique nommé Toto de la feuille Données For Each Grf In Sh.ChartObjects If Grf.Name = "Toto" Then Grf.Delete Exit For End If Next Grf 'On crée notre graphique Set Grf = Sh.ChartObjects.Add(140, 10, 500, 300) Grf.Name = "Toto" With Grf.Chart .ChartType = xlLineMarkers .SeriesCollection.NewSeries With .SeriesCollection(1) .Values = Sh.Range("B2:B14") .XValues = Sh.Range("A2:A14") End With End With Set Grf = Nothing Set Sh = Nothing End Sub
- 1
- 2
Suivant