Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/08/2011, 16h25   #1
 
Inscription : avril 2009
Messages : 52
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 52
Points : -1
Points : -1
Par défaut probleme de macro

J'ai une macro comme ceci, je travaille beaucoup avec des PC mais là j'ai un MAC qui n'accepte par la ligne suivante :
Code :
Left(Dir(CheminBdd & "BDD.*"), 4) <> "BDD." Then
Pouvez vous me dire pourquoi et comment contourner le problème pour que ma macro fonctionne sous MAC


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
 
Sub Transfert()
Dim LigneCible As Long, ligneOrigine As Long
Dim LigneFin As Long
Dim Données As Variant
Dim Nom As String
Dim Mois As String
Dim Trimestre As String
Dim Année As String
Dim Nbjourstrav As String
Dim Nbconges As String
Dim Nbformation As String
Dim Pointeur As Long
Dim CheminBdd As String
'Lecture des infos dans la fiche de saisie
Nom = ThisWorkbook.Worksheets("fiche_activite").Range("B3").Value
Mois = ThisWorkbook.Worksheets("fiche_activite").Range("E3").Value
Trimestre = ThisWorkbook.Worksheets("fiche_activite").Range("E4").Value
Année = ThisWorkbook.Worksheets("fiche_activite").Range("E5").Value
Nbjourstrav = ThisWorkbook.Worksheets("fiche_activite").Range("D6").Value
Nbconges = ThisWorkbook.Worksheets("fiche_activite").Range("D8").Value
Nbformation = ThisWorkbook.Worksheets("fiche_activite").Range("D10").Value
LigneFin = ThisWorkbook.Worksheets("fiche_activite").Range("A2000").End(xlUp).Row
Données = ThisWorkbook.Worksheets("fiche_activite").Range("A14:e" & LigneFin)
 
'Ecriture dans l'onglet Base de données BDD
 
' Le chemin sera à modifier en fonction de l'application
CheminBdd = "u:/test/"
If Left(Dir(CheminBdd & "BDD.*"), 4) <> "BDD." Then
  Workbooks.Add
  Worksheets.Add
  ActiveSheet.Name = "BDD"
  Worksheets("BDD").Range("A1") = "Nom"
  Worksheets("BDD").Range("B1") = "Mois"
  Worksheets("BDD").Range("C1") = "Trimestre"
  Worksheets("BDD").Range("D1") = "Année"
  Worksheets("BDD").Range("E1") = "Nbjourstrav"
  Worksheets("BDD").Range("F1") = "Nbconges"
  Worksheets("BDD").Range("G1") = "Nbformation"
 
  ThisWorkbook.Worksheets("fiche_activite").Range("A13:E13").Copy Destination:=Worksheets("BDD").Range("H1:L1")
  ActiveWorkbook.SaveAs Filename:=CheminBdd & "BDD.xls"
 Else
  Workbooks.Open Filename:=CheminBdd & "BDD.xls"
End If
LigneCible = Workbooks("BDD.xls").Worksheets("BDD").Range("A65535").End(xlUp).Row + 1
' Boucle répétitive pour le nom
For Pointeur = LigneCible To LigneCible + UBound(Données) - 1
 Range("BDD!A" & Pointeur) = Année
 Range("BDD!B" & Pointeur) = Trimestre
 Range("BDD!C" & Pointeur) = Mois
 Range("BDD!D" & Pointeur) = Nom
 Range("BDD!E" & Pointeur) = Nbjourstrav
 Range("BDD!F" & Pointeur) = Nbconges
 Range("BDD!G" & Pointeur) = Nbformation
Next Pointeur
'Copie globale de la zone saisie
Workbooks("BDD.xls").Worksheets("BDD").Range("H" & LigneCible & ":L" & LigneCible + UBound(Données) - 1) = Données
Workbooks("BDD.xls").Close True
MsgBox "Merci la fiche du mois de " & Range("D3") & " a été transférée à Véronique"
End Sub
Merci d'avance pour vos réponses
vivi
vivi21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 16h31   #2
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 890
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 890
Points : 7 163
Points : 7 163
Bonjour,

Je ne connais pas les MAC, mais sur un PC un chemin contient des Anti-Slash et non des Slash
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 18h07   #3
Rédacteur
 
Avatar de Ormonth
 
Homme Didier GONARD
Formateur Développeur Office - indépendant
Inscription : février 2008
Messages : 2 353
Détails du profil
Informations personnelles :
Nom : Homme Didier GONARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Formateur Développeur Office - indépendant

Informations forums :
Inscription : février 2008
Messages : 2 353
Points : 4 682
Points : 4 682
Bonjour,

pour connaître le séparateur voulu, tu peux te servir de la propriété PathSeparator de l'objet Application. dans la fenêtre d'exécution :

Code :
 ?Application.PathSeparator
Pour une portabilité constante du code un truc du genre :


Et il y a Mac ...et Mac selon l'OS le séparateur diffère je crois...
Code :
1
2
3
4
5
6
7
Sub gogo()
Dim strSepparateur
 
strSepparateur = Application.PathSeparator
Workbooks.Open Filename:="D:" & strSepparateur & "toto.xls"
 
End Sub
cordialement,

Didier
__________________
Didier Gonard

Ps :
Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite !
Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP
N'oubliez pas de mettre : ..quand c'est le cas !
Ormonth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 14h06   #4
Candidat au titre de Membre du Club
 
Excusez mon français, ce n'est pas ma langue de base
Inscription : août 2011
Messages : 32
Détails du profil
Informations personnelles :
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Excusez mon français, ce n'est pas ma langue de base

Informations forums :
Inscription : août 2011
Messages : 32
Points : 12
Points : 12
Bonjour,

Je travail sur MAC et c'est une citation du code qui fonctionne bien

Code :
1
2
repertoire = "gestion:Dépenses:"     
Workbooks.Open "gestion:Dépenses:BD_consolidees.xls"
cordialement
Gogia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 14h29   #5
Rédacteur
 
Avatar de Ormonth
 
Homme Didier GONARD
Formateur Développeur Office - indépendant
Inscription : février 2008
Messages : 2 353
Détails du profil
Informations personnelles :
Nom : Homme Didier GONARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Formateur Développeur Office - indépendant

Informations forums :
Inscription : février 2008
Messages : 2 353
Points : 4 682
Points : 4 682
Bonjour,

Gogia tu es sous quel OS ?

cordialement,

Didier
__________________
Didier Gonard

Ps :
Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite !
Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP
N'oubliez pas de mettre : ..quand c'est le cas !
Ormonth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 15h31   #6
Candidat au titre de Membre du Club
 
Excusez mon français, ce n'est pas ma langue de base
Inscription : août 2011
Messages : 32
Détails du profil
Informations personnelles :
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Excusez mon français, ce n'est pas ma langue de base

Informations forums :
Inscription : août 2011
Messages : 32
Points : 12
Points : 12
Citation:
Envoyé par Ormonth Voir le message
Gogia tu es sous quel OS ?
Bonjour,

J'utilise Microsoft Office 2011 pour MAC.

cordialement,
Gogia
Gogia est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h04.


 
 
 
 
Partenaires

Hébergement Web