Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

besoin d'aide VBA..

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 !

choupi_nette

XLDnaute Occasionnel
Bonjour,

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
 
Re : besoin d'aide VBA..

Bonjour choupi-nette,

Après 201 posts et près de 3 ans sur le forum, vous devriez savoir que beaucoup ne répondent plus aux fils dont le titre est débile.

C'est mon cas.

De faire partie du sexe dit faible n'excuse rien.

A+
 
Re : besoin d'aide VBA..

Au fait ce matin j'ai posté un message avec COMME TITRE :
Export d'un onglet sous condition...modification de code

Nombre de reponse =0
Au lieu de critiquer et de faire le "débile" avec le sexe faible montre tes competances
 
Re : besoin d'aide VBA..

Bonjour choupi_nette, job75


Une ébauche de solution :
VB:
Sub export()
Dim i%, ref$
    With ThisWorkbook.Sheets
        For i = 1 To .Count
            If .Item(i).Name = "P7" Then ref = .Item(i).Name: Exit For
        Next
    End With
    If ref = "" Then Exit Sub
    'Ici : le code nécessaire aux opérations à faire.
End Sub


ROGER2327
#5431


Samedi 7 Gueules 139 (Saint Gueule, abbé - fête Suprême Quarte)
12 Pluviôse An CCXX, 6,0683h - brocoli
2012-W05-3T14:33:50Z
 
Re : besoin d'aide VBA..

...suite


Une autre possibilité :
VB:
Sub export()
Dim ref$
    With ThisWorkbook.Sheets
        On Error Resume Next
        ref = .Item("P7").Name
        On Error GoTo 0
        If ref = "" Then Exit Sub
        'Ici : le code nécessaire aux opérations à faire.
    End With
End Sub


ROGER2327
#5432


Samedi 7 Gueules 139 (Saint Gueule, abbé - fête Suprême Quarte)
12 Pluviôse An CCXX, 6,2009h - brocoli
2012-W05-3T14:52:56Z
 
Dernière édition:
Re : besoin d'aide VBA..

Bonjour,

Une petite fonction pour savoir si une feuille existe :
VB:
Function existeFeuille(f As String) As Boolean

' Contrôle l'existence de la feuille fOnglet dans le classeur actuel
'
Dim temp As Variant

Application.Volatile
On Error Resume Next
temp = Sheets(UCase(f)).[A1]
existeFeuille = (Err = 0)

End Function
 
Re : besoin d'aide VBA..

...et suite encore


VB:
Sub export()
Dim ref$
    ref = "P7"
    On Error GoTo E
    ref = ThisWorkbook.Sheets.Item(ref).Activate
    On Error GoTo 0
    'Ici : le code nécessaire aux opérations à faire.
    'Par exemple (et en adaptant les chemins !) :
    ChDir "C:\Users\Maurice\Desktop"
    ActiveWorkbook.SaveAs Filename:="C:\Users\Maurice\Desktop\Classeur1.csv", _
        FileFormat:=xlCSVMSDOS, CreateBackup:=False
Exit Sub
'   ----------------------------------------------------------
E: MsgBox "Il n'y a pas de feuille " & ref & " dans ce classeur."
End Sub


ROGER2327
#5433


Samedi 7 Gueules 139 (Saint Gueule, abbé - fête Suprême Quarte)
12 Pluviôse An CCXX, 6,3127h - brocoli
2012-W05-3T15:09:02Z
 
Dernière édition:
Re : besoin d'aide VBA..

Re,
Merci pour vos reponses...
Mais je n'y arrive pas ca me fait des erreurs
Si vous le voulez bien je reprends...

Ne pouvant joindre mon fichier de base (trop lourd) j'explique ce que je veux faire:

Si l'onglet P7 existe l'exporter en csv
Si il (onglet P7) n existe pas le creer et activer le code suivant puis exporter en csv
With Sheets("P7")
.Cells.ClearContents
.Range("A1").Value = "Source_pos_cDNA"
.Range("B1").Value = "CDNA_name"
.Range("C1").Value = "Source_cDNA_Well"
.Range("D1").Value = "vol_cDNA"
.Range("E1").Value = "Dest_pos_cDNA"
.Range("F1").Value = "Dest_well_cDNA"
.Range("G1").Value = "Source_BC_primer"
.Range("H1").Value = "primer_name"
.Range("I1").Value = "Source_BC_pos_primer"
.Range("J1").Value = "Vol_primer_mix"
.Range("K1").Value = "Dest_well_Primers"
.Range("A2").Value = "0"
.Range("B2").Value = "0"
.Range("C2").Value = "0"
.Range("D2").Value = "0"
.Range("E2").Value = "0"
.Range("F2").Value = "0"
.Range("G2").Value = "0"
.Range("H2").Value = "0"
.Range("I2").Value = "0"
.Range("J2").Value = "0"
.Range("K2").Value = "0"
End With

Voici mon code que j'ai essayé d'adapter à ce que Roger2327 m'a donné


Merci pour votre aide
Sincerement,
Choupi_nette
 
Re : besoin d'aide VBA..

Re...


Peut-être quelque chose comme cela :
VB:
Sub export()
Dim ref$
    ref = "P7"
    On Error Resume Next
    ThisWorkbook.Sheets.Item(ref).Activate
    If Err <> 0 Then
        Sheets.Add
        With ActiveSheet
            .Name = ref
            .Range("A1").Value = "Source_pos_cDNA"
            .Range("B1").Value = "CDNA_name"
            .Range("C1").Value = "Source_cDNA_Well"
            .Range("D1").Value = "vol_cDNA"
            .Range("E1").Value = "Dest_pos_cDNA"
            .Range("F1").Value = "Dest_well_cDNA"
            .Range("G1").Value = "Source_BC_primer"
            .Range("H1").Value = "primer_name"
            .Range("I1").Value = "Source_BC_pos_primer"
            .Range("J1").Value = "Vol_primer_mix"
            .Range("K1").Value = "Dest_well_Primers"
            .Range("A2:K2").Value = "0"
        End With
    End If
    On Error GoTo 0
    Application.DisplayAlerts = False
    'Chemin à adapter :
    ActiveWorkbook.SaveAs Filename:="C:\Users\Maurice\Desktop\" & ref, _
        FileFormat:=xlCSVMSDOS, CreateBackup:=False
    Application.DisplayAlerts = True
End Sub


ROGER2327
#5434


Samedi 7 Gueules 139 (Saint Gueule, abbé - fête Suprême Quarte)
12 Pluviôse An CCXX, 6,6479h - brocoli
2012-W05-3T15:57:18Z
 
- 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

Discussions similaires

Réponses
5
Affichages
159
Réponses
4
Affichages
286
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…