Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/10/2011, 08h47   #1
Invité de passage
 
Inscription : octobre 2011
Messages : 1
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 1
Points : 0
Points : 0
Par défaut Problème de conversion de données

Bonjour à tous,

Novice en VBA, je cherche de l'aide pour écrire le code manquant dans ma macro pour deux tâches spécifiques. Ayant découvert votre communauté, je me permets de m'adresser à vous afin d'obtenir les informations qui me manque. D'avance, je vous remercie de votre aide.

La situation est la suivante. La macro va chercher des valeurs spécifiques dans une feuille précise et copie un certain nombre de cellules adjacentes souhaité dans une autre feuille. Sauvegarde est ensuite faite de cette feuille en format .csv.

Deux problèmes se posent à moi:

En premier lieu, je souhaite que la macro, pour une colonne précise, ne copie pas simplement les données contenues mais une part précise de celle-ci.

Exemple

Donnée initiale: XXX AAA XXX > Donnée copiée: AAA
Donnée initiale: BBB XXX > Donnée copiée: BBB
etc...

Je pensais utiliser pour ceci la fonction InStr mais je peine à l'insérer dans mon code.

Deuxièmement, j'ai des données prises sur 2 colonnes différentes dans mon fichier d'origine. J'aimerais tout d'abord transformer ceux-ci en une autre valeur donnée.

Exemple

Donnée initiale: jan > Donnée à copier: 01
Donnée initiale: fev > Donnée à copier: 02
etc...

Le problème est ici similaire au premier.

L'idée est d'ensuite coller cette valeur sur la nouvelle feuille en y joignant, dans la même cellule, la copie d'une autre cellule de la feuille initiale en séparant les 2 par le caractère "/".

Exemple

Données initiales: cellule 1; avr cellule 2; 2012 Données collées dans la cellule respective du nouveau fichier: 04/2012

Merci d'avance pour votre aide.

Le code actuel est le suivant:


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Sub ExportationCSV()
    Set SourceRange = Worksheets("XXX").Range("A4:V1004")
 
    Dim currentLineExport As Integer
    currentLineExport = 1
 
    For currentLine = 1 To 1001
        If SourceRange.Cells(currentLine, 7) = "Data1" Then
            Worksheets("ExportationCSV").Cells(currentLineExport, 1).Value = SourceRange.Cells(currentLine, 2)
            Worksheets("ExportationCSV").Cells(currentLineExport, 2).Value = SourceRange.Cells(currentLine, 16))
            Worksheets("ExportationCSV").Cells(currentLineExport, 3).Value = SourceRange.Cells(currentLine, 11)
            Worksheets("ExportationCSV").Cells(currentLineExport, 4).Value = SourceRange.Cells(currentLine, 12)
            Worksheets("ExportationCSV").Cells(currentLineExport, 5).Value = SourceRange.Cells(currentLine, 13)
            Worksheets("ExportationCSV").Cells(currentLineExport, 6).Value = SourceRange.Cells(currentLine, 14)
            Worksheets("ExportationCSV").Cells(currentLineExport, 7).Value = SourceRange.Cells(currentLine, 15)
            Worksheets("ExportationCSV").Cells(currentLineExport, 8).Value = SourceRange.Cells(currentLine, 25)
            Worksheets("ExportationCSV").Cells(currentLineExport, 9).Value = SourceRange.Cells(currentLine, 26)
            Worksheets("ExportationCSV").Cells(currentLineExport, 10).Value = SourceRange.Cells(currentLine, 24)
            currentLineExport = currentLineExport + 1
        End If
    Next
End Sub
 
Sub ExportationCSV2()
'
' ExportationCSV2 Macro
' Exportation finale csv
'
 
'
    ChDir "X:\XXX\XXX"
    ActiveWorkbook.SaveAs Filename:="X:\XXX\XXX\XXX.csv", _
        FileFormat:=xlCSV, CreateBackup:=False
End Sub
Perdev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2011, 14h49   #2
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Bonjour,

Tu devrais donner les colonnes concernées par un traitement spécifique et les colonnes de destination.
Quand tu écris :
Citation:
Donnée initiale: XXX AAA XXX
à quoi correspondent les "X" ? si ce sont des caractères quelconques, comment fait-on la séparation ?
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h20.


 
 
 
 
Partenaires

Hébergement Web