VBA pour MAC: un problème avec le syntax

Bonjour à tous,

Je cherche une aide de quelqu'un qui "parle" le VBA et travaile sur MAC ou connaît les différences du syntax VBA pour PC et VBA pour MAC.

Est-ce que quelqu’un pourra m’aider et verifier pourquoi le code suivant (merci vba-new!!!) ne marche pas sur MAC:

Sub Cde_Equip(Maitre As Workbook, FeuilBase As Worksheet, ByVal rep As String, ByVal numEquip As Long)

Dim nbLign As Long, derLign&, i&, derLignA&, derLignC&

Dim trouve As Range, plageEquip As Range

FeuilBase.Copy before:=Maitre.Sheets(1)

With ActiveSheet

ActiveSheet.Range("C3:Z45").Sort _

Key1:=.Range("C3"), _

Key2:=.Range("D3")

With .Sort

.SetRange Range("C3:Z45")

.Orientation = xlTopToBottom

.Apply

End With

nbLign = Application.CountIf(.[C3:C45], numEquip)

Set trouve = .Range("C2:C45").Find(numEquip, LookIn:=xlValues, LookAt:=xlWhole)

Set plageEquip = trouve.Resize(nbLign, 24)

Set ExistFichier = Nothing

On Error Resume Next

Set ExistFichier = Workbooks.Open(rep & "BD d'équipe " & numEquip & " Model.xls")

On Error GoTo 0

If ExistFichier Is Nothing Then

MsgBox "L'équipe " & numEquip & " n'a pas de fichier." & vbCrLf & _

"Veuillez en créer un.", vbExclamation

Exit Sub

End If

Les trios lignes (en gros) sont en jaunes et une fleches montre sur la troisième ligne.

Merci en avance,

Baton

Bonsoir

Un peu bizarre ton code là ....

Première question évidemment. Quelle est ta version d'excel ?? Dans ton profil je vois 2008.

A te relire

Amicalement

Re Dan, re Baton,

Voici le code original Dan :

Sub Cde_Equip(Maitre As Workbook, FeuilBase As Worksheet, ByVal rep As String, ByVal numEquip As Long)
    Dim nbLign As Long, derLign&, i&, derLignA&, derLignC&
    Dim trouve As Range, plageEquip As Range

    FeuilBase.Copy before:=Maitre.Sheets(1)
    With ActiveSheet
'        .Sort.SortFields.Clear
'        .Sort.SortFields.Add Key:=.Range( _
'                                  "C3:C45"), SortOn:=xlSortOnValues, Order:=xlAscending
'        .Sort.SortFields.Add Key:=.Range( _
'                                  "D3:D45"), SortOn:=xlSortOnValues, Order:=xlAscending
'        With .Sort
'            .SetRange Range("C3:Z45")
'            .Orientation = xlTopToBottom
'            .Apply
'        End With
        nbLign = Application.CountIf(.[C3:C45], numEquip)
        Set trouve = .Range("C2:C45").Find(numEquip, LookIn:=xlValues, LookAt:=xlWhole)
        Set plageEquip = trouve.Resize(nbLign, 24)
        Set ExistFichier = Nothing
        On Error Resume Next
        Set ExistFichier = Workbooks.Open(rep & "BD d'équipe " & numEquip & " Model.xls")
        On Error GoTo 0
        If ExistFichier Is Nothing Then
            MsgBox "L'équipe " & numEquip & " n'a pas de fichier." & vbCrLf & _
                   "Veuillez en créer un.", vbExclamation
            Exit Sub
        End If

        Sheets("Data").Select
        plageEquip.Copy
        derLign = IIf(Range("C" & Rows.Count).End(xlUp).Row + 1 < 3, 3, Range("C" & Rows.Count).End(xlUp).Row + 1)
        With Cells(derLign, 3)
            .PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
                          xlNone, SkipBlanks:=False, Transpose:=False
            .PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
                          SkipBlanks:=False, Transpose:=False
        End With
        'suppression des doublons
        Columns(3).Insert xlToRight
        For Each cel In Range("D" & derLign).Resize(nbLign)
            doublon = Evaluate("SumProduct((" & Range("D3:D" & derLign - 1).Address & "=" & cel.Value & ")*(" & Range("E3:E" & derLign - 1).Address & "=" & cel.Offset(, 1).Value & "))")
            If doublon > 0 Then Cells(cel.Row, 3).Value = "$$$"
        Next cel
        Set trouve = Range("C" & derLign).Resize(nbLign).Find("$$$", LookAt:=xlWhole)
        If Not trouve Is Nothing Then
            For i = nbLign + derLign - 1 To derLign Step -1
                If Cells(i, 3) = "$$$" Then Rows(i).Delete
            Next i
        End If
        Columns(3).Delete
        derLignC = Range("C" & Rows.Count).End(xlUp).Row
        derLignA = IIf(Range("A" & Rows.Count).End(xlUp).Row + 1 < 3, 3, Range("A" & Rows.Count).End(xlUp).Row + 1)
        If derLignC > derLignA Then
            For i = derLignA To derLignC
                Cells(i, 1) = Cells(i - 1, 1) + 1
            Next i
        End If
        Application.DisplayAlerts = False
        .Delete
    End With
End Sub

C'est une macro qui est appelée dans une autre macro. La partie qui ne marchait pas est la partie commentée. C'est censé trier la plage C3:Z45

re,

Merci VBaNew.

Pour comprendre il faudrait la totalité du code et les fichiers concernés.

Si c'est le tri qui est concerné, mettre ce code

Activesheet.Range("C3:Z45").Sort Key1:=Range("C3"), Order1:=xlAscending, Key2:=Range("D3") _
        , Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
        False, Orientation:=xlTopToBottom

Reste à savoir ta version d'excel

Amicalement

Voici les 2 fichiers :

Dans le fichier Bon de commande, il faut lancer la macro consolide qui normalement ouvre le fichier BD consolidées Model

Le post où je galère à trouver une solution qui marche sur MAC (ça marche parfaitement chez moi) : https://forum.excel-pratique.com/excel/alimentation-automatique-de-bases-des-donnees-t24452.html

Merci Dan

re,

Pour le tri, mettre le code que j'ai placé avant.

Vbanew, pour ton souci je réponds sur l'autre fil car dans le fichier placé ici cela ne peut fonctionner sous MAC.

reste donc à voir sous quel version excel MAC, Baton travaille

Amicalement

Merci Dan.

Dan a écrit :

...car dans le fichier placé ici cela ne peut fonctionner sous MAC.

Par simple curiosité, pourquoi ?

re

Par simple curiosité, pourquoi ?

Je n'ai pas été trop loin mais deux choses posent souci :

  • Les instructions de tri correctes sont celles que j'ai données avant et que tu avais aussi données sur l'autre fil
  • Le séparateur sous MAC est toujours --> ":" tandis que sous windows c'est "\"

Baton tu es là ??

Amicalement

Nonjour Dan et Vba-New,

Bonjour à tous,

Je suis là

Je travaile sur Excel 2008 pour Mac. Car ce logiciel n'est pas compatible avec le VBA, notre sysadmin m'a installé Excel 2002 pour Mac.

Baton

re,

Voilà on y est. C'est bien ce que je pensais au sujet de ta version.

Excel 2002 pour MAC n'existe pas. Soit tu as Excel 2001 ou 2004.

Dans les deux cas linstruction de tri que je t'ai donnée fonctionnera sans souci.

A te relire

Amicalement

Dan a écrit :

re,

Excel 2002 pour MAC n'existe pas. Soit tu as Excel 2001 ou 2004.

Amicalement

re

la version est Microsoft Office X. Selon notre sysadmin c'est une version de l'année 2002. Il me semble, qu'il sèst trompé. Peut-être, c'est vraiment 2001, mais ça ne changent pas grande chose.

-- 17 Août 2011, 12:16 --

Dan,

après avoir remplacé le code, j'exécute le code suivant:

Sub Cde_Equip(Maitre As Workbook, FeuilBase As Worksheet, ByVal rep As String, ByVal numEquip As Long)

Dim nbLign As Long, derLign&, i&, derLignA&, derLignC&

Dim trouve As Range, plageEquip As Range

FeuilBase.Copy before:=Maitre.Sheets(1)

With ActiveSheet

ActiveSheet.Range("C3:Z45").Sort Key1:=Range("C3"), Order1:=xlAscending, Key2:=Range("D3") _

, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _

False, Orientation:=xlTopToBottom

With .Sort

.SetRange Range("C3:Z45")

.Orientation = xlTopToBottom

.Apply

End With

La fenêtre que je reçoie est:

Erreur d'exécution '1004'

La méthode Sort de la classe Range a échoué

Les trois ligne en gras sont colorées en jaune et la flêche indique la troisième ligne.

re,

Pour ta version excel, va dans Excel puis clique sur "a propos de" pour connaitre la version

Code --> essaie plutôt comme ceci :

Sub Cde_Equip(Maitre As Workbook, FeuilBase As Worksheet, ByVal rep As String, ByVal numEquip As Long)
Dim nbLign As Long, derLign&, i&, derLignA&, derLignC&
Dim trouve As Range, plageEquip As Range
FeuilBase.Copy before:=Maitre.Sheets(1)
ActiveSheet.Range("C3:Z45").Sort Key1:=Range("C3"), Order1:=xlAscending, Key2:=Range("D3") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom

Le tout est de savoir à quoi correspond l'activesheet à ce moment là bien sûr.

Attention que la feuille ne doit pas être protégée aussi...

Re Dan,

L'activesheet correspond à la feuille qui vient d'être copiée avec :

FeuilBase.Copy before:=Maitre.Sheets(1)
Dan a écrit :

Pour ta version excel, va dans Excel puis clique sur "a propos de" pour connaitre la version

l'autopsie decouvre que c'est 2001

Dan a écrit :

Code --> essaie plutôt comme ceci :

Sub Cde_Equip(Maitre As Workbook, FeuilBase As Worksheet, ByVal rep As String, ByVal numEquip As Long)
Dim nbLign As Long, derLign&, i&, derLignA&, derLignC&
Dim trouve As Range, plageEquip As Range
FeuilBase.Copy before:=Maitre.Sheets(1)
ActiveSheet.Range("C3:Z45").Sort Key1:=Range("C3"), Order1:=xlAscending, Key2:=Range("D3") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom

Le tout est de savoir à quoi correspond l'activesheet à ce moment là bien sûr.

J'exécute ce code (ces sont toutes les lignes de la deuxième partie) et je reçoie

Erreur de compilation:

Référence incorrecte ou non qualifié

la ligne du code

Sub Cde_Equip(Maitre As Workbook, FeuilBase As Worksheet, ByVal rep As String, ByVal numEquip As Long)

est en jaune + dans le code plus tard dans la ligne

nbLign = Application.CountIf(.[C3:C45], numEquip)

est selectée

Je suis sûr que je n'ai pas compris correctement ta recommendation quelle partie du code il fallait remplacer par la tien.

Pourras-tu m'envoyer le code complet?

Sub Cde_Equip(Maitre As Workbook, FeuilBase As Worksheet, ByVal rep As String, ByVal numEquip As Long)
Dim nbLign As Long, derLign&, i&, derLignA&, derLignC&
Dim trouve As Range, plageEquip As Range
FeuilBase.Copy before:=Maitre.Sheets(1)
ActiveSheet.Range("C3:Z45").Sort Key1:=Range("C3"), Order1:=xlAscending, Key2:=Range("D3") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom
nbLign = Application.CountIf(.[C3:C45], numEquip)
Set trouve = .Range("C2:C45").Find(numEquip, LookIn:=xlValues, LookAt:=xlWhole)
Set plageEquip = trouve.Resize(nbLign, 24)
Set ExistFichier = Nothing
On Error Resume Next
Set ExistFichier = Workbooks.Open(rep & "BD d'équipe " & numEquip & " Model.xls")
On Error GoTo 0
If ExistFichier Is Nothing Then
MsgBox "L'équipe " & numEquip & " n'a pas de fichier." & vbCrLf & _
"Veuillez en créer un.", vbExclamation
Exit Sub
End If

Sheets("Data").Select
plageEquip.Copy
derLign = IIf(Range("C" & Rows.Count).End(xlUp).Row + 1 < 3, 3, Range("C" & Rows.Count).End(xlUp).Row + 1)
With Cells(derLign, 3)
.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End With
'suppression des doublons
Columns(3).Insert xlToRight
For Each cel In Range("D" & derLign).Resize(nbLign)
doublon = Evaluate("SumProduct((" & Range("D3:D" & derLign - 1).Address & "=" & cel.Value & ")*(" & Range("E3:E" & derLign - 1).Address & "=" & cel.Offset(, 1).Value & "))")
If doublon > 0 Then Cells(cel.Row, 3).Value = "$$$"
Next cel
Set trouve = Range("C" & derLign).Resize(nbLign).Find("$$$", LookAt:=xlWhole)
If Not trouve Is Nothing Then
For i = nbLign + derLign - 1 To derLign Step -1
If Cells(i, 3) = "$$$" Then Rows(i).Delete
Next i
End If
Columns(3).Delete
derLignC = Range("C" & Rows.Count).End(xlUp).Row
derLignA = IIf(Range("A" & Rows.Count).End(xlUp).Row + 1 < 3, 3, Range("A" & Rows.Count).End(xlUp).Row + 1)
If derLignC > derLignA Then
For i = derLignA To derLignC
Cells(i, 1) = Cells(i - 1, 1) + 1
Next i
End If
Application.DisplayAlerts = False
.Delete
End With
End Sub
Dan a écrit :

Attention que la feuille ne doit pas être protégée aussi...

les deux fichiers ne sont pas protéges

re,

Attention que pour l'exécution tu dois toujours partir de la sub consolide() sinon le code Sub Cde_Equip ne fonctionnera pas

Remplace le début du code par ceci :

Sub Cde_Equip(Maitre As Workbook, FeuilBase As Worksheet, ByVal rep As String, ByVal numEquip As Long)
Dim nbLign As Long, derLign&, i&, derLignA&, derLignC&
Dim trouve As Range, plageEquip As Range
FeuilBase.Copy before:=Maitre.Sheets(1)
With ActiveSheet
.Range("C3:Z45").Sort Key1:=.Range("C3"), Order1:=xlAscending, Key2:=.Range("D3") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom
nbLign = Application.CountIf(.Range("C3:C45"), numEquip)
End with
....

A te relire

Dan,

Oui , j'exécute tous le macro.

Ce code là

Sub Cde_Equip(Maitre As Workbook, FeuilBase As Worksheet, ByVal rep As String, ByVal numEquip As Long)

Dim nbLign As Long, derLign&, i&, derLignA&, derLignC&

Dim trouve As Range, plageEquip As Range

FeuilBase.Copy before:=Maitre.Sheets(1)

With ActiveSheet

ActiveSheet.Range("C3:Z45").Sort _

Key1:=.Range("C3"), _

Key2:=.Range("D3")

With .Sort

.SetRange Range("C3:Z45")

.Orientation = xlTopToBottom

.Apply

End With

nbLign = Application.CountIf(.[C3:C45], numEquip)

Set trouve = .Range("C2:C45").Find(numEquip, LookIn:=xlValues, LookAt:=xlWhole)

Set plageEquip = trouve.Resize(nbLign, 24)

Set ExistFichier = Nothing

On Error Resume Next

Set ExistFichier = Workbooks.Open(rep & "BD d'équipe " & numEquip & " Model.xls")

On Error GoTo 0

If ExistFichier Is Nothing Then

MsgBox "L'équipe " & numEquip & " n'a pas de fichier." & vbCrLf & _

"Veuillez en créer un.", vbExclamation

Exit Sub

End If

Sheets("Data").Select

plageEquip.Copy

derLign = IIf(Range("C" & Rows.Count).End(xlUp).Row + 1 < 3, 3, Range("C" & Rows.Count).End(xlUp).Row + 1)

With Cells(derLign, 3)

.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _

xlNone, SkipBlanks:=False, Transpose:=False

.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _

SkipBlanks:=False, Transpose:=False

End With

'suppression des doublons

Columns(3).Insert xlToRight

For Each cel In Range("D" & derLign).Resize(nbLign)

doublon = Evaluate("SumProduct((" & Range("D3:D" & derLign - 1).Address & "=" & cel.Value & ")*(" & Range("E3:E" & derLign - 1).Address & "=" & cel.Offset(, 1).Value & "))")

If doublon > 0 Then Cells(cel.Row, 3).Value = "$$$"

Next cel

Set trouve = Range("C" & derLign).Resize(nbLign).Find("$$$", LookAt:=xlWhole)

If Not trouve Is Nothing Then

For i = nbLign + derLign - 1 To derLign Step -1

If Cells(i, 3) = "$$$" Then Rows(i).Delete

Next i

End If

Columns(3).Delete

derLignC = Range("C" & Rows.Count).End(xlUp).Row

derLignA = IIf(Range("A" & Rows.Count).End(xlUp).Row + 1 < 3, 3, Range("A" & Rows.Count).End(xlUp).Row + 1)

If derLignC > derLignA Then

For i = derLignA To derLignC

Cells(i, 1) = Cells(i - 1, 1) + 1

Next i

End If

Application.DisplayAlerts = False

.Delete

End With

End Sub

je remplace par ce code là

Sub Cde_Equip(Maitre As Workbook, FeuilBase As Worksheet, ByVal rep As String, ByVal numEquip As Long)

Dim nbLign As Long, derLign&, i&, derLignA&, derLignC&

Dim trouve As Range, plageEquip As Range

FeuilBase.Copy before:=Maitre.Sheets(1)

With ActiveSheet

.Range("C3:Z45").Sort Key1:=.Range("C3"), Order1:=xlAscending, Key2:=.Range("D3") _

, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _

False, Orientation:=xlTopToBottom

nbLign = Application.CountIf(.Range("C3:C45"), numEquip)

End With

nbLign = Application.CountIf(.[C3:C45], numEquip)

Set trouve = .Range("C2:C45").Find(numEquip, LookIn:=xlValues, LookAt:=xlWhole)

Set plageEquip = trouve.Resize(nbLign, 24)

Set ExistFichier = Nothing

On Error Resume Next

Set ExistFichier = Workbooks.Open(rep & "BD d'équipe " & numEquip & " Model.xls")

On Error GoTo 0

If ExistFichier Is Nothing Then

MsgBox "L'équipe " & numEquip & " n'a pas de fichier." & vbCrLf & _

"Veuillez en créer un.", vbExclamation

Exit Sub

End If

Sheets("Data").Select

plageEquip.Copy

derLign = IIf(Range("C" & Rows.Count).End(xlUp).Row + 1 < 3, 3, Range("C" & Rows.Count).End(xlUp).Row + 1)

With Cells(derLign, 3)

.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _

xlNone, SkipBlanks:=False, Transpose:=False

.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _

SkipBlanks:=False, Transpose:=False

End With

'suppression des doublons

Columns(3).Insert xlToRight

For Each cel In Range("D" & derLign).Resize(nbLign)

doublon = Evaluate("SumProduct((" & Range("D3:D" & derLign - 1).Address & "=" & cel.Value & ")*(" & Range("E3:E" & derLign - 1).Address & "=" & cel.Offset(, 1).Value & "))")

If doublon > 0 Then Cells(cel.Row, 3).Value = "$$$"

Next cel

Set trouve = Range("C" & derLign).Resize(nbLign).Find("$$$", LookAt:=xlWhole)

If Not trouve Is Nothing Then

For i = nbLign + derLign - 1 To derLign Step -1

If Cells(i, 3) = "$$$" Then Rows(i).Delete

Next i

End If

Columns(3).Delete

derLignC = Range("C" & Rows.Count).End(xlUp).Row

derLignA = IIf(Range("A" & Rows.Count).End(xlUp).Row + 1 < 3, 3, Range("A" & Rows.Count).End(xlUp).Row + 1)

If derLignC > derLignA Then

For i = derLignA To derLignC

Cells(i, 1) = Cells(i - 1, 1) + 1

Next i

End If

Application.DisplayAlerts = False

.Delete

End With

End Sub

mais la même "faute" est toujours là.

re,

C'est pas ce que je t'avais indiqué plus haut. Il y a deux fois la même instruction ("application countif" et "set trouve")

Sub Cde_Equip(Maitre As Workbook, FeuilBase As Worksheet, ByVal rep As String, ByVal numEquip As Long)
Dim nbLign As Long, derLign&, i&, derLignA&, derLignC&
Dim trouve As Range, plageEquip As Range
FeuilBase.Copy before:=Maitre.Sheets(1)
With ActiveSheet
.Range("C3:Z45").Sort Key1:=.Range("C3"), Order1:=xlAscending, Key2:=.Range("D3") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom
nbLign = Application.CountIf(.Range("C3:C45"), numEquip)
Set trouve = .Range("C2:C45").Find(numEquip, LookIn:=xlValues, LookAt:=xlWhole)
Set plageEquip = trouve.Resize(nbLign, 24)
Set ExistFichier = Nothing
On Error Resume Next
Set ExistFichier = Workbooks.Open(rep & "BD d'équipe " & numEquip & " Model.xls")
On Error GoTo 0
If ExistFichier Is Nothing Then
MsgBox "L'équipe " & numEquip & " n'a pas de fichier." & vbCrLf & _
"Veuillez en créer un.", vbExclamation
Exit Sub
End If

Sheets("Data").Select
plageEquip.Copy
derLign = IIf(Range("C" & Rows.Count).End(xlUp).Row + 1 < 3, 3, Range("C" & Rows.Count).End(xlUp).Row + 1)
With Cells(derLign, 3)
.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End With
'suppression des doublons
Columns(3).Insert xlToRight
For Each cel In Range("D" & derLign).Resize(nbLign)
doublon = Evaluate("SumProduct((" & Range("D3:D" & derLign - 1).Address & "=" & cel.Value & ")*(" & Range("E3:E" & derLign - 1).Address & "=" & cel.Offset(, 1).Value & "))")
If doublon > 0 Then Cells(cel.Row, 3).Value = "$$$"
Next cel
Set trouve = Range("C" & derLign).Resize(nbLign).Find("$$$", LookAt:=xlWhole)
If Not trouve Is Nothing Then
For i = nbLign + derLign - 1 To derLign Step -1
If Cells(i, 3) = "$$$" Then Rows(i).Delete
Next i
End If
Columns(3).Delete
derLignC = Range("C" & Rows.Count).End(xlUp).Row
derLignA = IIf(Range("A" & Rows.Count).End(xlUp).Row + 1 < 3, 3, Range("A" & Rows.Count).End(xlUp).Row + 1)
If derLignC > derLignA Then
For i = derLignA To derLignC
Cells(i, 1) = Cells(i - 1, 1) + 1
Next i
End If
Application.DisplayAlerts = False
.Delete
End With
End Sub

Chez moi cela bug aussi sur l'instruction de tri mais la raison est que la feuille commande dans le fichier donné par VBANEW est protégée. Il faut déprotéger la feuille et je ne connais pas le mot de passe

Dan a écrit :

Chez moi cela bug aussi sur l'instruction de tri mais la raison est que la feuille commande dans le fichier donné par VBANEW est protégée. Il faut déprotéger la feuille et je ne connais pas le mot de passe

Me dit pas que c'est juste pour ça Le mot de passe est aaa

re,

Me dit pas que c'est juste pour ça Le mot de passe est aaa

Oui Vbanew !

Mais cela ne concerne pas Baton puisqu'il dit que sa feuille n'est pas protégée

Amicalement

Bonsoir Dan & Vba-New,

Merci beaucoup!!! Je vais essayer demain de vérifier comment ca marche.

Le fichier BD était protégé, mais j'ai ôté la protection.

Est-ce que des macros ne marchent jamais sur les feuilles protégées?

Je voudrais protéger le plus possible pour maximalement éviter ou diminuer le risque

du travail ne pas "correct".

Dan,

Je ne maitrise pas bien le français et même si tu donnes des instructions claires, pas toujours je suis capable de les comprendre. Le français n'est pas une langue facile

Je comprends bien que vous avez assez du travail et je suis très loi de penser de vous embêter pour le plaisir...

Je reviens demain avec des nouvelles.

baton

Rechercher des sujets similaires à "vba mac probleme syntax"