Bonjour à tous,
Je rencontre un problème avec une macro relativement simple que j'utilise au bureau (Windows) sous excel.
Lorsque je l'utilise chez moi avec mon MAC, elle plante.
Avez-vous une idée de ce qui peut clocher dans le code si dessous ?
Il s'agit de récupérer des données dans un onglet et les coller dans d'autres onglets.
Pour cet exemple je fais un virement d'un compte bancaire à un autre, c'est à dire d'un onglet à un autre.
Merci par avance pour votre aide.
Sub virement()
'si cellules vides message erreur
If Workbooks("Money").Worksheets("Soldes de tous les comptes").Cells(2, 11).Value = "" Or Workbooks("Money").Worksheets("Soldes de tous les comptes").Cells(2, 11) Is Nothing Then
MsgBox ("Vous devez saisir une date")
GoTo fin
End If
'si cellules vides message erreur
If Workbooks("Money").Worksheets("Soldes de tous les comptes").Cells(2, 13).Value = "" Or Workbooks("Money").Worksheets("Soldes de tous les comptes").Cells(2, 13) Is Nothing Then
MsgBox ("Vous devez saisir un montant")
GoTo fin
End If
'' --------------------------------------------------------
' a=compte éméteur / b=compte destination / c=date du virement / d=montant
Dim a As String
Dim b As String
Dim c As Date
Dim d As String
'' --------------------------------------------------------
'récupère les données du virement
a = Workbooks("Money").Worksheets("Soldes de tous les comptes").Cells(2, 5)
b = Workbooks("Money").Worksheets("Soldes de tous les comptes").Cells(2, 8)
c = Workbooks("Money").Worksheets("Soldes de tous les comptes").Cells(2, 11)
d = Workbooks("Money").Worksheets("Soldes de tous les comptes").Cells(2, 13)
'' --------------------------------------------------------
' virement sur compte éméteur
' s'assure que le bon onglet est activé pour le compte éméteur
Sheets("" & a).Select
' Détermine la première ligne à remplir
Dim nextrow As Long
nextrow = Cells(Rows.Count, 1).End(xlUp).Row + 1
'transfère données
Cells(nextrow, 1) = "Virement vers " & b
Cells(nextrow, 4) = c
Cells(nextrow, 6) = d
'' --------------------------------------------------------
' virement sur compte destination
' s'assure que le bon onglet est activé pour le compte éméteur
Sheets("" & b).Select
' Détermine la première ligne à remplir
nextrow = Cells(Rows.Count, 1).End(xlUp).Row + 1
'transfère données
Cells(nextrow, 1) = "Virement depuis " & a
Cells(nextrow, 4) = c
Cells(nextrow, 7) = d
fin:
End Sub
Je rencontre un problème avec une macro relativement simple que j'utilise au bureau (Windows) sous excel.
Lorsque je l'utilise chez moi avec mon MAC, elle plante.
Avez-vous une idée de ce qui peut clocher dans le code si dessous ?
Il s'agit de récupérer des données dans un onglet et les coller dans d'autres onglets.
Pour cet exemple je fais un virement d'un compte bancaire à un autre, c'est à dire d'un onglet à un autre.
Merci par avance pour votre aide.
Sub virement()
'si cellules vides message erreur
If Workbooks("Money").Worksheets("Soldes de tous les comptes").Cells(2, 11).Value = "" Or Workbooks("Money").Worksheets("Soldes de tous les comptes").Cells(2, 11) Is Nothing Then
MsgBox ("Vous devez saisir une date")
GoTo fin
End If
'si cellules vides message erreur
If Workbooks("Money").Worksheets("Soldes de tous les comptes").Cells(2, 13).Value = "" Or Workbooks("Money").Worksheets("Soldes de tous les comptes").Cells(2, 13) Is Nothing Then
MsgBox ("Vous devez saisir un montant")
GoTo fin
End If
'' --------------------------------------------------------
' a=compte éméteur / b=compte destination / c=date du virement / d=montant
Dim a As String
Dim b As String
Dim c As Date
Dim d As String
'' --------------------------------------------------------
'récupère les données du virement
a = Workbooks("Money").Worksheets("Soldes de tous les comptes").Cells(2, 5)
b = Workbooks("Money").Worksheets("Soldes de tous les comptes").Cells(2, 8)
c = Workbooks("Money").Worksheets("Soldes de tous les comptes").Cells(2, 11)
d = Workbooks("Money").Worksheets("Soldes de tous les comptes").Cells(2, 13)
'' --------------------------------------------------------
' virement sur compte éméteur
' s'assure que le bon onglet est activé pour le compte éméteur
Sheets("" & a).Select
' Détermine la première ligne à remplir
Dim nextrow As Long
nextrow = Cells(Rows.Count, 1).End(xlUp).Row + 1
'transfère données
Cells(nextrow, 1) = "Virement vers " & b
Cells(nextrow, 4) = c
Cells(nextrow, 6) = d
'' --------------------------------------------------------
' virement sur compte destination
' s'assure que le bon onglet est activé pour le compte éméteur
Sheets("" & b).Select
' Détermine la première ligne à remplir
nextrow = Cells(Rows.Count, 1).End(xlUp).Row + 1
'transfère données
Cells(nextrow, 1) = "Virement depuis " & a
Cells(nextrow, 4) = c
Cells(nextrow, 7) = d
fin:
End Sub