Forums XLPages

Tous les messages (Basket)

Re: Saisir une valeur dans une boite de dialogue
#1
Débutant XLPages

Inscription: 10/02/2011

Messages: 9

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 03-04-2015 14h10

Bonjour,

 

Merci Dan, c'est exactement ce que je recherchai.

 

Cordialement

 

Olivier

Hors Ligne
Rapport   Haut 

Saisir une valeur dans une boite de dialogue
#2
Débutant XLPages

Inscription: 10/02/2011

Messages: 9

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 27-03-2015 14h53

Bonjour à toutes et tous,

 

Je cherche le moyen de saisir une valeur dans une boite de dialogue pour récupérer cette valeur dans une macro.

Je m'explique

Par une macro excel, je veux saisir une valeur dans une boite de dialogue, récupérer cette valeur pour aller chercher une valeur correspondante dans un tableau.

 

Par exemple, j'ai dans une feuille les valeurs suivante :

Cellule A1 "TOTO"

Cellule B1 "2"

Cellule A2 "TITI"

Cellule B2 "3"

 

Dons en saisissant TITI dans ma boite de dialogue, je veux récupérer "TITI" dans ma macro pour aller chercher la valeur 3 dans la feuille en question.

 

J'ai démarré une macro :

 

Rep = MsgBox("Saisir l'album" & "Continuer ?", vbYesNo + vbQuestion)

If Rep = vbYes Then

 

 

Else

   MsgBox "Procédure terminée", vbInformation

End If

 

Il me manque le principal entre le Then et le Else....

 

Merci de votre aide.

 

Bravo pour votre site, c'est un puit d'informations.

 

Cdlt

 

Olivier

Hors Ligne
Rapport   Haut 

Re: Macro pour ajouter une feuille et la renommer
#3
Débutant XLPages

Inscription: 10/02/2011

Messages: 9

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 13-08-2014 18h19

Merci Guy pour ton retour.

Ma réponse est très tardive, je m'en excuse, j'ai été absent un long moment.

Merci

Cdlt

Olivier

Edité par myDearFriend! le 14/08/2014 02:19:03
Hors Ligne
Rapport   Haut 

Macro pour ajouter une feuille et la renommer
#4
Débutant XLPages

Inscription: 10/02/2011

Messages: 9

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 15-05-2014 20h22

Bonjour,

 

Pourriez-vous m'aider pour créer une macro permettant de :

- créer une nouvelle feuille dans un fichier excel, puis renommer cette même feuille.

 

En faisant plusieurs essais, le problème que je rencontre est le nom de la nouvelle feuille que je ne maitrise pas (voir mon essai ci-dessous)

 

Sub Macro2()
'
' Macro2 Macro
'

'
    Sheets.Add
    Sheets("Feuil3").Select
    Sheets("Feuil3").Name = "Nouvelle feuille"
End Sub

 

Je ne peux pas automatiser cette macro, car si je l'utilise plusieurs fois, le nom de la feuille ne sera pas toujours "Feuil3"

 

Merci de votre aide,

 

Olivier

Hors Ligne
Rapport   Haut 

Re: Comment tester si un fichier excel est déjà ouvert dans une macro
#5
Débutant XLPages

Inscription: 10/02/2011

Messages: 9

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 21-02-2011 15h56
Bonjour,

Merci pour votre aide précieuse, le test du fichier déjà ouvert fonctionne.

Cordialement
Hors Ligne
Rapport   Haut 

Re: Comment tester si un fichier excel est déjà ouvert dans une macro
#6
Débutant XLPages

Inscription: 10/02/2011

Messages: 9

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 16-02-2011 09h16
Sub Maj_donnees()
'
' Maj_donnees Macro
' Macro enregistrée le 28/12/2010 par Olivier
'
' Touche de raccourci du clavier: Ctrl+j
'
   
'   Ouverture du fichier ci-dessous avec le no du fichier en paramètre récupéré
'   en cellule G2
'   fic = "\\naoned\sous-traitant\AdjustHR\03 - Fiche navette\FN 018\Suivi Fiche 018"
   
    Dim fic1 As String
    Dim fic2 As String
    Dim fic3 As String
    Dim fic4 As String
    Dim fic5 As String
    Dim fic  As String
    fic1 = "\\naoned\sous-traitant\AdjustHR\03 - Fiche navette\FN "
    fic2 = "Suivi Fiche "
    fic3 = "0"
    fic33 = "00"
    fic4 = "='[Suivi Fiche "
    fic5 = ".xls]Besoin'!"
    fic6 = ".xls"
    DATED = "R1C5"
    HEURED = "R1C6"
    NOFICHE = "R1C3"
    NOMD = "R3C3"
    CVREC = "R4C9"
    DATELIM = "R5C11"
    HEURELIM = "R5C12"
    CVDLIM = "R5C13"
    TJMO = "R1C14"
    TJMN = "R2C14"
    ACCUS = "R4C5"
    CV1 = "R7C1"
    CV1H = "R7C2"
    TYPEB = "R4C3"
    NBCVR = "R1C9"
    NBCVOK = "R2C9"
    NBCV48 = "R3C9"
    SLA = "R4C9"
    CVRET = "R1C12"
    ENT = "R3C12"
    RETOUR = "R4C12"
 
'   Détermination du nom du fichier à ouvrir
    fic = fic1 & Range(CStr("G2")) & "" & fic2 & Range(CStr("G2"))
    If Cells(2, 7).Value < 99 Then
      fic = fic1 & fic3 & Range(CStr("G2")) & "" & fic2 & fic3 & Range(CStr("G2"))
    End If
 
    If Cells(2, 7).Value < 10 Then
      fic = fic1 & fic33 & Range(CStr("G2")) & "" & fic2 & fic33 & Range(CStr("G2"))
    End If
 
' Test fichier ouvert
 
    If ClasseurEstOuvert(fic) Then
        MsgBox "Le fichier " & fic & " est ouvert." & vbLf & vbLf & "Arrêt de la procédure" & vbLf & vbLf & "Fermer le fichier et relancer"
    Else
 
        '   Ouverture du fichier
        Workbooks.Open Filename:=fic
   
        Windows("Suivi des besoins.xls").Activate
   
        '   Activation de la cellule pour mise à jour "Date de la demande"
        Range("B" + CStr(Range("G1"))).Select
        '   Constitution de la formule "='[Suivi Fiche 018.xls]Besoin'!R1C6" avec le 018 en paramètre
        formule = fic4 & Range(CStr("G2")) & fic5 & DATED
        If Cells(2, 7).Value < 99 Then
           formule = fic4 & fic3 & Range(CStr("G2")) & fic5 & DATED
        End If
        If Cells(2, 7).Value < 10 Then
           formule = fic4 & fic33 & Range(CStr("G2")) & fic5 & DATED
        End If
        ActiveCell.FormulaR1C1 = formule
   
        '   Activation de la cellule pour mise à jour "Heure de la demande"
        Range("C" + CStr(Range("G1"))).Select
        formule = fic4 & Range(CStr("G2")) & fic5 & HEURED
        If Cells(2, 7).Value < 99 Then
           formule = fic4 & fic3 & Range(CStr("G2")) & fic5 & HEURED
        End If
        If Cells(2, 7).Value < 10 Then
           formule = fic4 & fic33 & Range(CStr("G2")) & fic5 & HEURED
        End If
        ActiveCell.FormulaR1C1 = formule

        '   Activation de la cellule pour mise à jour "N° de Fiche"
        Range("E" + CStr(Range("G1"))).Select
        formule = fic4 & Range(CStr("G2")) & fic5 & NOFICHE
        If Cells(2, 7).Value < 99 Then
           formule = fic4 & fic3 & Range(CStr("G2")) & fic5 & NOFICHE
        End If
        If Cells(2, 7).Value < 10 Then
           formule = fic4 & fic33 & Range(CStr("G2")) & fic5 & NOFICHE
        End If
        ActiveCell.FormulaR1C1 = formule

        '   Activation de la cellule pour mise à jour "Nom du demandeur"
        Range("I" + CStr(Range("G1"))).Select
        formule = fic4 & Range(CStr("G2")) & fic5 & NOMD
        If Cells(2, 7).Value < 99 Then
           formule = fic4 & fic3 & Range(CStr("G2")) & fic5 & NOMD
        End If
        If Cells(2, 7).Value < 10 Then
           formule = fic4 & fic33 & Range(CStr("G2")) & fic5 & NOMD
        End If
        ActiveCell.FormulaR1C1 = formule
 
        '   Activation de la cellule pour mise à jour "CV Reçus sous 2 Jours"
        Range("J" + CStr(Range("G1"))).Select
        formule = fic4 & Range(CStr("G2")) & fic5 & CVREC
        If Cells(2, 7).Value < 99 Then
           formule = fic4 & fic3 & Range(CStr("G2")) & fic5 & CVREC
        End If
        If Cells(2, 7).Value < 10 Then
           formule = fic4 & fic33 & Range(CStr("G2")) & fic5 & CVREC
        End If
        ActiveCell.FormulaR1C1 = formule
 
        '   Activation de la cellule pour mise à jour "Date limite de traitement par Adjust"
        Range("K" + CStr(Range("G1"))).Select
        formule = fic4 & Range(CStr("G2")) & fic5 & DATELIM
        If Cells(2, 7).Value < 99 Then
           formule = fic4 & fic3 & Range(CStr("G2")) & fic5 & DATELIM
        End If
        If Cells(2, 7).Value < 10 Then
           formule = fic4 & fic33 & Range(CStr("G2")) & fic5 & DATELIM
        End If
        ActiveCell.FormulaR1C1 = formule

        '   Activation de la cellule pour mise à jour "Heure limite de traitement par Adjust"
        Range("L" + CStr(Range("G1"))).Select
        formule = fic4 & Range(CStr("G2")) & fic5 & HEURELIM
        If Cells(2, 7).Value < 99 Then
           formule = fic4 & fic3 & Range(CStr("G2")) & fic5 & HEURELIM
        End If
        If Cells(2, 7).Value < 10 Then
           formule = fic4 & fic33 & Range(CStr("G2")) & fic5 & HEURELIM
        End If
        ActiveCell.FormulaR1C1 = formule
   
        '   Activation de la cellule pour mise à jour "NB CV OK 48"
        Range("N" + CStr(Range("G1"))).Select
        formule = fic4 & Range(CStr("G2")) & fic5 & NBCV48
        If Cells(2, 7).Value < 99 Then
           formule = fic4 & fic3 & Range(CStr("G2")) & fic5 & NBCV48
        End If
        If Cells(2, 7).Value < 10 Then
           formule = fic4 & fic33 & Range(CStr("G2")) & fic5 & NBCV48
        End If
        ActiveCell.FormulaR1C1 = formule

        '   Activation de la cellule pour mise à jour "Accusé réception"
        Range("O" + CStr(Range("G1"))).Select
        formule = fic4 & Range(CStr("G2")) & fic5 & ACCUS
        If Cells(2, 7).Value < 99 Then
           formule = fic4 & fic3 & Range(CStr("G2")) & fic5 & ACCUS
        End If
        If Cells(2, 7).Value < 10 Then
           formule = fic4 & fic33 & Range(CStr("G2")) & fic5 & ACCUS
        End If
        ActiveCell.FormulaR1C1 = formule
   
        '   Activation de la cellule pour mise à jour "NB CV Reçus sous date limite de traitement"
        Range("P" + CStr(Range("G1"))).Select
        formule = fic4 & Range(CStr("G2")) & fic5 & CVDLIM
        If Cells(2, 7).Value < 99 Then
           formule = fic4 & fic3 & Range(CStr("G2")) & fic5 & CVDLIM
        End If
        If Cells(2, 7).Value < 10 Then
           formule = fic4 & fic33 & Range(CStr("G2")) & fic5 & CVDLIM
        End If
        ActiveCell.FormulaR1C1 = formule
   
        '   Activation de la cellule pour mise à jour "Heure Réception CV 1"
        Range("Q" + CStr(Range("G1"))).Select
        formule = fic4 & Range(CStr("G2")) & fic5 & CV1H
        If Cells(2, 7).Value < 99 Then
           formule = fic4 & fic3 & Range(CStr("G2")) & fic5 & CV1H
        End If
        If Cells(2, 7).Value < 10 Then
           formule = fic4 & fic33 & Range(CStr("G2")) & fic5 & CV1H
        End If
        ActiveCell.FormulaR1C1 = formule
   
        '   Activation de la cellule pour mise à jour "Type de besoin"
        Range("R" + CStr(Range("G1"))).Select
        formule = fic4 & Range(CStr("G2")) & fic5 & TYPEB
        If Cells(2, 7).Value < 99 Then
           formule = fic4 & fic3 & Range(CStr("G2")) & fic5 & TYPEB
        End If
        If Cells(2, 7).Value < 10 Then
           formule = fic4 & fic33 & Range(CStr("G2")) & fic5 & TYPEB
        End If
        ActiveCell.FormulaR1C1 = formule
   
        '   Activation de la cellule pour mise à jour "NB CV Reçu"
        Range("S" + CStr(Range("G1"))).Select
        formule = fic4 & Range(CStr("G2")) & fic5 & NBCVR
        If Cells(2, 7).Value < 99 Then
           formule = fic4 & fic3 & Range(CStr("G2")) & fic5 & NBCVR
        End If
        If Cells(2, 7).Value < 10 Then
           formule = fic4 & fic33 & Range(CStr("G2")) & fic5 & NBCVR
        End If
        ActiveCell.FormulaR1C1 = formule
   
        '   Activation de la cellule pour mise à jour "NB CV OK"
        Range("T" + CStr(Range("G1"))).Select
        formule = fic4 & Range(CStr("G2")) & fic5 & NBCVOK
        If Cells(2, 7).Value < 99 Then
           formule = fic4 & fic3 & Range(CStr("G2")) & fic5 & NBCVOK
        End If
        If Cells(2, 7).Value < 10 Then
           formule = fic4 & fic33 & Range(CStr("G2")) & fic5 & NBCVOK
        End If
        ActiveCell.FormulaR1C1 = formule
   
        '   Activation de la cellule pour mise à jour "NB CV RETENU"
        Range("U" + CStr(Range("G1"))).Select
        formule = fic4 & Range(CStr("G2")) & fic5 & CVRET
        If Cells(2, 7).Value < 99 Then
           formule = fic4 & fic3 & Range(CStr("G2")) & fic5 & CVRET
        End If
        If Cells(2, 7).Value < 10 Then
           formule = fic4 & fic33 & Range(CStr("G2")) & fic5 & CVRET
        End If
        ActiveCell.FormulaR1C1 = formule
   
        '   Activation de la cellule pour mise à jour "NB Entretien"
        Range("V" + CStr(Range("G1"))).Select
        formule = fic4 & Range(CStr("G2")) & fic5 & ENT
        If Cells(2, 7).Value < 99 Then
           formule = fic4 & fic3 & Range(CStr("G2")) & fic5 & ENT
        End If
        If Cells(2, 7).Value < 10 Then
           formule = fic4 & fic33 & Range(CStr("G2")) & fic5 & ENT
        End If
        ActiveCell.FormulaR1C1 = formule
   
        '   Activation de la cellule pour mise à jour "RETOUR"
        Range("W" + CStr(Range("G1"))).Select
        formule = fic4 & Range(CStr("G2")) & fic5 & RETOUR
        If Cells(2, 7).Value < 99 Then
           formule = fic4 & fic3 & Range(CStr("G2")) & fic5 & RETOUR
        End If
        If Cells(2, 7).Value < 10 Then
           formule = fic4 & fic33 & Range(CStr("G2")) & fic5 & RETOUR
        End If
        ActiveCell.FormulaR1C1 = formule

        ' Positionnement dans la cellule à gauche
        Range("A" + CStr(Range("G1"))).Select

        ' Fermeture du fichier
        fic = fic2 & Range(CStr("G2")) & fic6
        If Cells(2, 7).Value < 99 Then
           fic = fic2 & fic3 & Range(CStr("G2")) & fic6
        End If
        If Cells(2, 7).Value < 10 Then
           fic = fic2 & fic33 & Range(CStr("G2")) & fic6
        End If
        Workbooks(fic).Close
   
 End If
 
End Sub
Function ClasseurEstOuvert(strNomFichierComplet As String) As Boolean

  Set objExcel = New Excel.Application
 
  With objExcel
 
    ' L'instance d'Excel qui porte le fichier ne doit pas être visible
    .Visible = False
   
    .Workbooks.Open (strNomFichierComplet)
   
    ' Si le classeur est déjà ouvert cette propriété sera à True
    ClasseurEstOuvert = .Workbooks(1).ReadOnly
 
    .Quit
 
  End With
 
  ' Ne pas oublier de supprimer la référence à Excel
  ' sinon une autre instance fantôme hantera votre système...
  Set objExcel = Nothing
 
End Function
 
Bonjour Guy,
Merci pour tes explications, tu trouveras ci joint le code VBA, si des instructions te choquent, n'hésite pas, c'est à aujourd'hui mon premier code VBA sans avoir eu de formation...
Cdlt
Olivier
Hors Ligne
Rapport   Haut 

Re: Comment tester si un fichier excel est déjà ouvert dans une macro
#7
Débutant XLPages

Inscription: 10/02/2011

Messages: 9

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 15-02-2011 14h58
Bonjour Guy,

J'ai testé ta procédure sur laquelle j'ai eu quelques soucis, je ne suis pas arrivé à y mettre Option Explicit et Dim objExcel As Excel.Application
N'étant pas un pro de VBA, j'ai quand même réussi à insérer ton code dans le mien  sans ces "option et Dim" et ça marche finement. De ce que je comprends de ta procédure, c'est que tu ouvres le fichier dans un excel non visible, le fait de tester qu'il soit readonly fait que le fichier est déjà ouvert, c'est bien ça ?.

Merci de ton aide

Cordialement

Olivier 

Hors Ligne
Rapport   Haut 

Re: Comment tester si un fichier excel est déjà ouvert dans une macro
#8
Débutant XLPages

Inscription: 10/02/2011

Messages: 9

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 14-02-2011 17h12
Il est vrai, j'aurais dû dire bonjour avant de poser ma question, je m'en excuse....la prochaine fois je ferai plus attention...  pour autant, j'ai découvert le site et je le trouve très bien
Hors Ligne
Rapport   Haut 

Comment tester si un fichier excel est déjà ouvert dans une macro
#9
Débutant XLPages

Inscription: 10/02/2011

Messages: 9

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 10-02-2011 15h21
Je mets à jour un fichier excel à partir d'autres fichiers excel. Avant d'ouvrir les autres fichiers, je cherche à tester si le fichier est déjà ouvert
Hors Ligne
Rapport   Haut