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

  • Initiateur de la discussion Initiateur de la discussion hautthomas
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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😱
 
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

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

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

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

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

Dernière édition:
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.
 
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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
227
Réponses
4
Affichages
232
Réponses
6
Affichages
279
Réponses
18
Affichages
619
Réponses
3
Affichages
313
Retour