Besoin d'aide pour la modification d'une macro, pas très compliqué à première vue.

hautthomas

XLDnaute Nouveau
Tout se trouve dans la pièce jointe !!
 

Pièces jointes

  • macro 3 colonnes.docx
    190.3 KB · Affichages: 53

Paritec

XLDnaute Barbatruc
Re : Besoin d'aide pour la modification d'une macro, pas très compliqué à première vu

Bonjour Hautthomas le forum
c'est super le fichier .docx que tu as joint, mais tu veux quoi? travailler avec excel ???
alors un petit fichier exemple excel, avec les informations dedans et on va te faire cela.
Pour le "C'est pas compliqué à première vue" je te dirais pourquoi donc ne le fais tu pas toi même, si c'est pas compliqué!!!
dans l'attente de te lire
a+
papou:eek:
 

hautthomas

XLDnaute Nouveau
Re : Besoin d'aide pour la modification d'une macro, pas très compliqué à première vu

Voilà un exemple de tableau pour lequel j'aimerais que le programme une fois modifié fonctionne.
Ce n'est surement pas compliqué pour quelqu'un comme vous je voulais dire!!
Moi en tant que débutant ça serait pas de la tarte !!
Merci à toi en tout cas.
 

Pièces jointes

  • exemple tableau.xlsx
    12.8 KB · Affichages: 43
  • exemple tableau.xlsx
    12.8 KB · Affichages: 48
  • exemple tableau.xlsx
    12.8 KB · Affichages: 46

job75

XLDnaute Barbatruc
Re : Besoin d'aide pour la modification d'une macro, pas très compliqué à première vu

Bonsoir hautthomas, Papou, tbft,

Un essai avec :

- une liste de validation en A2 pour afficher les données

- un bouton pour créer le fichier .crd (CSV).

Vous pourrez ouvrir ce fichier avec l'application Excel, et vous noterez que les dates sont au format US.

Mais il est facile de les convertir avec la commande "Convertir".

Fichier joint, les macros sont dans le code de la feuille :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$2" Then Exit Sub
Me.Names.Add "col", Application.Match(Target, [B2:IV2], 0)
If IsError([col]) Then
  CommandButton1.Enabled = False
  [B:IV].EntireColumn.Hidden = False
  On Error Resume Next
  Me.ShowAllData
Else
  CommandButton1.Enabled = True
  Intersect([B:IV], Me.UsedRange).EntireColumn.Hidden = True
  Columns([col] + 1).Resize(, 2).Hidden = False
End If
End Sub

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Workbooks.Add
With ActiveWorkbook.Sheets(1)
  Me.UsedRange.SpecialCells(xlCellTypeVisible).Copy .[A1]
  .[1:1].Delete
  .[B1] = ""
  Application.DisplayAlerts = False
  On Error Resume Next
  .SaveAs "C:\DONNEES\" & .[A1] & ".crd", xlCSV
  If Err Then MsgBox "Créez le dossier 'C:\DONNEES' !"
  ActiveWindow.Close False
End With
End Sub
A+
 

Pièces jointes

  • exemple tableau(1).xls
    52.5 KB · Affichages: 38

job75

XLDnaute Barbatruc
Re : Besoin d'aide pour la modification d'une macro, pas très compliqué à première vu

Re,

Un autre essai, cette fois le bouton crée tous les fichiers CSV :

Code:
Private Sub CommandButton1_Click()
Dim cel As Range
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each cel In [B1:IV1].SpecialCells(xlCellTypeConstants)
  Affiche cel.Text
  Workbooks.Add
  With ActiveWorkbook.Sheets(1)
    Me.UsedRange.SpecialCells(xlCellTypeVisible).Copy .[A1]
    .[A1] = cel: .[B1] = ""
    On Error Resume Next
    .SaveAs "C:\DONNEES\" & .[A1] & ".crd", xlCSV
    ActiveWindow.Close False
    If Err Then MsgBox "Créez le dossier 'C:\DONNEES' !": Exit Sub
  End With
Next
Affiche ""
End Sub

Sub Affiche(txt As String)
Dim col As Variant
col = Application.Match(txt, [B1:IV1], 0)
If IsError(col) Then
  [B:IV].EntireColumn.Hidden = False
Else
  Intersect([B:IV], Me.UsedRange).EntireColumn.Hidden = True
  Columns(col + 1).Resize(, 2).Hidden = False
End If
End Sub
Fichier joint.

A+
 

Pièces jointes

  • Fichiers CSV(1).xls
    53 KB · Affichages: 32

job75

XLDnaute Barbatruc
Re : Besoin d'aide pour la modification d'une macro, pas très compliqué à première vu

Re,

J'ai ajouté le filtrage (masquage) des lignes vides (cellules colorées).

Bien sûr elles ne sont pas copiées dans le fichier CSV correspondant.

Fichier (2).

A+
 

Pièces jointes

  • Fichiers CSV(2).xls
    53.5 KB · Affichages: 33

job75

XLDnaute Barbatruc
Re : Besoin d'aide pour la modification d'une macro, pas très compliqué à première vu

Re,

En fait le filtre automatique ne va pas pour masquer les lignes vides.

En effet il masque même si une seule cellule est vide.

Pour masquer seulement quand les deux cellules sont vides il faut une boucle.

Fichier (3) joint.

Bonne nuit.
 

Pièces jointes

  • Fichiers CSV(3).xls
    54 KB · Affichages: 27
Dernière édition:

hautthomas

XLDnaute Nouveau
Re : Besoin d'aide pour la modification d'une macro, pas très compliqué à première vu

C'est vrai que l'histoire des dates qui sortent en US, ça oblige à tout reconvertir.
Serait-il possible de les sortir directement en JJ/MM/AAAA afin d'optimiser le programme?
Voilà, encore merci pour ton travail.
 

job75

XLDnaute Barbatruc
Re : Besoin d'aide pour la modification d'une macro, pas très compliqué à première vu

Bonjour hautthomas,

C'est vrai que l'histoire des dates qui sortent en US, ça oblige à tout reconvertir.
Serait-il possible de les sortir directement en JJ/MM/AAAA afin d'optimiser le programme?

Dans cette version (4) le format des dates est conservé dans les fichiers CSV.

Le principe est de mettre la colonne A au format Texte au début, puis de la remettre au format Date à la fin.

A+
 

Pièces jointes

  • Fichiers CSV(4).xls
    57 KB · Affichages: 30

Discussions similaires

Réponses
6
Affichages
739

Statistiques des forums

Discussions
311 740
Messages
2 082 041
Membres
101 879
dernier inscrit
Arthur M