Modifier code

Bonjour le forum,

J'ai une question que je ne sais pas resoudre donc je sollicite votre aide..

J'ai une macro qui me fait tout un tas de calculs, et créée OU pas un onglet qui devra etre exporté.

Seulement l'export dependra de si oui ou non cet onglet a été crée !

Pour faire simple, deux options possibles:

1/ ma macro crée l'onglet (qui s'appelle P7) et donc il devra etre exporté tel qu'il est en csv (onglet1 dans mon exemple)

2/ ma macro ne crée pas cet onglet (car pas besoin) mais il faudra quand meme creer un export sous le nom P7 qui devra etre comme dans le fichier joint (onglet 2)

Il faut des 0 partout dans l'onglet 2 car cette macro aliment un appareil qui a besoin d'un fichier meme avec des 0 !!

Merci pour votre aide

Pour info le code actuel qui m exporte l'onglet

Ce code exporte cet onglet QUE si il est crée par la macro précédente.

Sheets("CD").Select
For i = 1 To ThisWorkbook.Sheets.count
If Sheets(i).Name = Sheets("CD").Range("O12").Value Then
rep = ActiveWorkbook.Path & "\"
nom_feuille2 = Sheets("CD").Range("O12")
Sheets(nom_feuille2).Copy
With ActiveWorkbook
Application.DisplayAlerts = False
.SaveAs rep & nom_feuille2, FileFormat:=xlCSVMSDOS
.Close True
Workbooks.OpenText Filename:=rep & nom_feuille2
ActiveWorkbook.Save
ActiveWorkbook.Close True
End With
End If
Next
11excel.xls (16.00 Ko)

Bonjour

Tu fournis un fichier sans macro

La page CD, où est elle ???????

Une supposition mais il faut vraiment le bon fichier

Sub test()
Dim Rep As sting
Dim Nom_Feuille2  As String

  Sheets("CD").Select
  Rep = ActiveWorkbook.Path & "\"
  For i = 1 To ThisWorkbook.Sheets.Count
    If Sheets(i).Name = Sheets("CD").Range("O12").Value Then
      Nom_Feuille2 = Sheets("CD").Range("O12")
    Else
      Nom_Feuille2 = "Onglet2"
    End If
    Sheets(Nom_Feuille2).Copy
    With ActiveWorkbook
      Application.DisplayAlerts = False
      .SaveAs Rep & Nom_Feuille2, FileFormat:=xlCSVMSDOS
      .Close True
      Workbooks.OpenText Filename:=Rep & Nom_Feuille2
      ActiveWorkbook.Save
      ActiveWorkbook.Close True
    End With
  Next
End Sub

Re,

Merci pour ta réponse mais visiblement je me suis mal exprimée donc je reformule différemment...

J'ai un fichier avec(ou sans) un onglet qui s'appelle "P7". Desfois P7 est dans le fichier et desfois il n'est pas présent

Est il possible d'avoir un code a deux conditions:

Si P7 existe alors l'exporter en csv

Si il n existe pas CREER un onglet appelé P7 et inscrire la valeur "Bonjour" en A4

Merci

Bonjour

J'ai du mal à comprendre

Tu as une macro qui fait allusion à une feuille CD

Tu feuillètes ton classeur et si tu vois que le nom d'une de ses pages est repris dans la cellule O12 de la feuille CD tu exportes cette feuille au format CSV

Que se passe t-il si tu ne trouves aucune occurrence ?

Tu copies quoi ?

Je réitère ma demande

Joins le bon fichier

Re,

Desolée je ne peux pas joindre la macro car rien que le fichier vide pese 700ko

D'autre part il n'y a pas besoin du fichier. Oublie meme le contenu de "012"

Partons d'un fichier vierge

Si l'onglet P7 existe l'exporter en csv

Si il n existe pas le creer, mettre la valeur " bonjour " en A3 et l'exporter en csv

C'est tout ce que je recherche

Apres j'adapterai a mes besoins

Merci

Bonjour

Toujours sans filet

Sub Exporte()
Dim Rep As String
Dim Ok As Boolean

  Rep = ActiveWorkbook.Path & "\"

  On Error Resume Next
  Ok = Sheets("P7").Name <> ""
  On Error GoTo 0
  If Ok = False Then
    Sheets.Add
    ActiveSheet.Name = "P7"
    Range("A3") = "Bonjour"
  End If
  Sheets("P7").Copy
  With ActiveWorkbook
    Application.DisplayAlerts = False
    .SaveAs Rep & "P7", FileFormat:=xlCSVMSDOS
    .Close True
  End With
  If Ok = False Then
    Sheets("P7").Delete
  End If

End Sub

Cher banzai64

Le sans filet te va plutôt bien

Merci,

Merci,

et encore

Merci

Rechercher des sujets similaires à "modifier code"