Bonsoir,
j'aimerai alléger la macro suivante en passant par une boucle For - Next et
là je sèche !
Module1
---------
Public Const RshBD1 = 34
Public Const RshBD2 = 35
Public Const RshBD3 = 36
Public sh As String
Public shP As Worksheet 'Paramètres
Public shBD1 As Worksheet ' BD1
Public shBD2 As Worksheet ' BD1
Public shBD3 As Worksheet ' BD1
Module2
---------
Sub test()
Set shP = Sheets(P)
If shP.Cells(RshBD1, (Page + 2) * 2) <> "" Then
sh = shP.Cells(RshBD1, (Page + 2) * 2)
Set shBD1 = Sheets(sh)
End If
If shP.Cells(RshBD2, (Page + 2) * 2) <> "" Then
sh = shP.Cells(RshBD2, (Page + 2) * 2)
Set shBD2 = Sheets(sh)
End If
If shP.Cells(RshBD3, (Page + 2) * 2) <> "" Then
sh = shP.Cells(RshBD3, (Page + 2) * 2)
Set shBD3 = Sheets(sh)
End If
End Sub
J'ai essayé, mais sans succès, le code suivant :
VBA me renvoi "Incompatibilité de type"
Je ne sai comment déclarer la variable A, je pense que le problème vient de
là mais je n'en suis pas sûr.
Sub test()
Set shP = Sheets(P)
For i=1 to 3
A=("RshBD" & i)
If shP.Cells(R, (Page + 2) * 2) <> "" Then
sh = shP.Cells(R, (Page + 2) * 2)
Select Case Page
Case 1
Set shBD1 = Sheets(sh)
Case 2
Set shBD2 = Sheets(sh)
Case 3
Set shBD3 = Sheets(sh)
End Select
End If
Next i
End Sub
Quelqu'un pourrait m'expliquer où est le problème ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
isabelle
bonjour Thierry,
peut être faudrait t'il remplacer A par R ou R par A ...
A=("RshBD" & i) If shP.Cells(R, (Page + 2) * 2) <> "" Then
isabelle
Bonsoir, j'aimerai alléger la macro suivante en passant par une boucle For - Next et là je sèche !
Module1 --------- Public Const RshBD1 = 34 Public Const RshBD2 = 35 Public Const RshBD3 = 36 Public sh As String Public shP As Worksheet 'Paramètres Public shBD1 As Worksheet ' BD1 Public shBD2 As Worksheet ' BD1 Public shBD3 As Worksheet ' BD1
Module2 --------- Sub test() Set shP = Sheets(P) If shP.Cells(RshBD1, (Page + 2) * 2) <> "" Then sh = shP.Cells(RshBD1, (Page + 2) * 2) Set shBD1 = Sheets(sh) End If If shP.Cells(RshBD2, (Page + 2) * 2) <> "" Then sh = shP.Cells(RshBD2, (Page + 2) * 2) Set shBD2 = Sheets(sh) End If If shP.Cells(RshBD3, (Page + 2) * 2) <> "" Then sh = shP.Cells(RshBD3, (Page + 2) * 2) Set shBD3 = Sheets(sh) End If End Sub
J'ai essayé, mais sans succès, le code suivant : VBA me renvoi "Incompatibilité de type" Je ne sai comment déclarer la variable A, je pense que le problème vient de là mais je n'en suis pas sûr.
Sub test() Set shP = Sheets(P) For i=1 to 3 A=("RshBD" & i) If shP.Cells(R, (Page + 2) * 2) <> "" Then sh = shP.Cells(R, (Page + 2) * 2) Select Case Page Case 1 Set shBD1 = Sheets(sh) Case 2 Set shBD2 = Sheets(sh) Case 3 Set shBD3 = Sheets(sh) End Select End If Next i End Sub
Quelqu'un pourrait m'expliquer où est le problème ?
Cordialement, Thierry.
bonjour Thierry,
peut être faudrait t'il remplacer A par R ou R par A ...
A=("RshBD" & i)
If shP.Cells(R, (Page + 2) * 2) <> "" Then
isabelle
Bonsoir,
j'aimerai alléger la macro suivante en passant par une boucle For - Next et
là je sèche !
Module1
---------
Public Const RshBD1 = 34
Public Const RshBD2 = 35
Public Const RshBD3 = 36
Public sh As String
Public shP As Worksheet 'Paramètres
Public shBD1 As Worksheet ' BD1
Public shBD2 As Worksheet ' BD1
Public shBD3 As Worksheet ' BD1
Module2
---------
Sub test()
Set shP = Sheets(P)
If shP.Cells(RshBD1, (Page + 2) * 2) <> "" Then
sh = shP.Cells(RshBD1, (Page + 2) * 2)
Set shBD1 = Sheets(sh)
End If
If shP.Cells(RshBD2, (Page + 2) * 2) <> "" Then
sh = shP.Cells(RshBD2, (Page + 2) * 2)
Set shBD2 = Sheets(sh)
End If
If shP.Cells(RshBD3, (Page + 2) * 2) <> "" Then
sh = shP.Cells(RshBD3, (Page + 2) * 2)
Set shBD3 = Sheets(sh)
End If
End Sub
J'ai essayé, mais sans succès, le code suivant :
VBA me renvoi "Incompatibilité de type"
Je ne sai comment déclarer la variable A, je pense que le problème vient de
là mais je n'en suis pas sûr.
Sub test()
Set shP = Sheets(P)
For i=1 to 3
A=("RshBD" & i)
If shP.Cells(R, (Page + 2) * 2) <> "" Then
sh = shP.Cells(R, (Page + 2) * 2)
Select Case Page
Case 1
Set shBD1 = Sheets(sh)
Case 2
Set shBD2 = Sheets(sh)
Case 3
Set shBD3 = Sheets(sh)
End Select
End If
Next i
End Sub
Quelqu'un pourrait m'expliquer où est le problème ?
peut être faudrait t'il remplacer A par R ou R par A ...
A=("RshBD" & i) If shP.Cells(R, (Page + 2) * 2) <> "" Then
isabelle
Bonsoir, j'aimerai alléger la macro suivante en passant par une boucle For - Next et là je sèche !
Module1 --------- Public Const RshBD1 = 34 Public Const RshBD2 = 35 Public Const RshBD3 = 36 Public sh As String Public shP As Worksheet 'Paramètres Public shBD1 As Worksheet ' BD1 Public shBD2 As Worksheet ' BD1 Public shBD3 As Worksheet ' BD1
Module2 --------- Sub test() Set shP = Sheets(P) If shP.Cells(RshBD1, (Page + 2) * 2) <> "" Then sh = shP.Cells(RshBD1, (Page + 2) * 2) Set shBD1 = Sheets(sh) End If If shP.Cells(RshBD2, (Page + 2) * 2) <> "" Then sh = shP.Cells(RshBD2, (Page + 2) * 2) Set shBD2 = Sheets(sh) End If If shP.Cells(RshBD3, (Page + 2) * 2) <> "" Then sh = shP.Cells(RshBD3, (Page + 2) * 2) Set shBD3 = Sheets(sh) End If End Sub
J'ai essayé, mais sans succès, le code suivant : VBA me renvoi "Incompatibilité de type" Je ne sai comment déclarer la variable A, je pense que le problème vient de là mais je n'en suis pas sûr.
Sub test() Set shP = Sheets(P) For i=1 to 3 A=("RshBD" & i) If shP.Cells(R, (Page + 2) * 2) <> "" Then sh = shP.Cells(R, (Page + 2) * 2) Select Case Page Case 1 Set shBD1 = Sheets(sh) Case 2 Set shBD2 = Sheets(sh) Case 3 Set shBD3 = Sheets(sh) End Select End If Next i End Sub
Quelqu'un pourrait m'expliquer où est le problème ?
Cordialement, Thierry.
Thierry
Bonjour Isabelle, merci pour ta réponse. C'est une coquille de ma pars lors de la saisie. Il faut lire R=("RshBD" & i). Mais VBA me renvoi toujours "Incompatibilité de type". Je pense que cela doit provenir de la déclaration de la variable R, seulement, là, je sèche ! A tu une idée ?
Thierry.
"isabelle" a écrit dans le message de news: #0Jj#
bonjour Thierry,
peut être faudrait t'il remplacer A par R ou R par A ...
A=("RshBD" & i) If shP.Cells(R, (Page + 2) * 2) <> "" Then
isabelle
Bonsoir, j'aimerai alléger la macro suivante en passant par une boucle For - Next et
là je sèche !
Module1 --------- Public Const RshBD1 = 34 Public Const RshBD2 = 35 Public Const RshBD3 = 36 Public sh As String Public shP As Worksheet 'Paramètres Public shBD1 As Worksheet ' BD1 Public shBD2 As Worksheet ' BD1 Public shBD3 As Worksheet ' BD1
Module2 --------- Sub test() Set shP = Sheets(P) If shP.Cells(RshBD1, (Page + 2) * 2) <> "" Then sh = shP.Cells(RshBD1, (Page + 2) * 2) Set shBD1 = Sheets(sh) End If If shP.Cells(RshBD2, (Page + 2) * 2) <> "" Then sh = shP.Cells(RshBD2, (Page + 2) * 2) Set shBD2 = Sheets(sh) End If If shP.Cells(RshBD3, (Page + 2) * 2) <> "" Then sh = shP.Cells(RshBD3, (Page + 2) * 2) Set shBD3 = Sheets(sh) End If End Sub
J'ai essayé, mais sans succès, le code suivant : VBA me renvoi "Incompatibilité de type" Je ne sai comment déclarer la variable A, je pense que le problème vient de
là mais je n'en suis pas sûr.
Sub test() Set shP = Sheets(P) For i=1 to 3 A=("RshBD" & i) If shP.Cells(R, (Page + 2) * 2) <> "" Then sh = shP.Cells(R, (Page + 2) * 2) Select Case Page Case 1 Set shBD1 = Sheets(sh) Case 2 Set shBD2 = Sheets(sh) Case 3 Set shBD3 = Sheets(sh) End Select End If Next i End Sub
Quelqu'un pourrait m'expliquer où est le problème ?
Cordialement, Thierry.
Bonjour Isabelle,
merci pour ta réponse.
C'est une coquille de ma pars lors de la saisie.
Il faut lire R=("RshBD" & i).
Mais VBA me renvoi toujours "Incompatibilité de type".
Je pense que cela doit provenir de la déclaration de la variable R,
seulement, là, je sèche !
A tu une idée ?
Thierry.
"isabelle" <i@v> a écrit dans le message de news:
#0Jj#WPfIHA.4760@TK2MSFTNGP06.phx.gbl...
bonjour Thierry,
peut être faudrait t'il remplacer A par R ou R par A ...
A=("RshBD" & i)
If shP.Cells(R, (Page + 2) * 2) <> "" Then
isabelle
Bonsoir,
j'aimerai alléger la macro suivante en passant par une boucle For - Next
et
là je sèche !
Module1
---------
Public Const RshBD1 = 34
Public Const RshBD2 = 35
Public Const RshBD3 = 36
Public sh As String
Public shP As Worksheet 'Paramètres
Public shBD1 As Worksheet ' BD1
Public shBD2 As Worksheet ' BD1
Public shBD3 As Worksheet ' BD1
Module2
---------
Sub test()
Set shP = Sheets(P)
If shP.Cells(RshBD1, (Page + 2) * 2) <> "" Then
sh = shP.Cells(RshBD1, (Page + 2) * 2)
Set shBD1 = Sheets(sh)
End If
If shP.Cells(RshBD2, (Page + 2) * 2) <> "" Then
sh = shP.Cells(RshBD2, (Page + 2) * 2)
Set shBD2 = Sheets(sh)
End If
If shP.Cells(RshBD3, (Page + 2) * 2) <> "" Then
sh = shP.Cells(RshBD3, (Page + 2) * 2)
Set shBD3 = Sheets(sh)
End If
End Sub
J'ai essayé, mais sans succès, le code suivant :
VBA me renvoi "Incompatibilité de type"
Je ne sai comment déclarer la variable A, je pense que le problème
vient de
là mais je n'en suis pas sûr.
Sub test()
Set shP = Sheets(P)
For i=1 to 3
A=("RshBD" & i)
If shP.Cells(R, (Page + 2) * 2) <> "" Then
sh = shP.Cells(R, (Page + 2) * 2)
Select Case Page
Case 1
Set shBD1 = Sheets(sh)
Case 2
Set shBD2 = Sheets(sh)
Case 3
Set shBD3 = Sheets(sh)
End Select
End If
Next i
End Sub
Quelqu'un pourrait m'expliquer où est le problème ?
Bonjour Isabelle, merci pour ta réponse. C'est une coquille de ma pars lors de la saisie. Il faut lire R=("RshBD" & i). Mais VBA me renvoi toujours "Incompatibilité de type". Je pense que cela doit provenir de la déclaration de la variable R, seulement, là, je sèche ! A tu une idée ?
Thierry.
"isabelle" a écrit dans le message de news: #0Jj#
bonjour Thierry,
peut être faudrait t'il remplacer A par R ou R par A ...
A=("RshBD" & i) If shP.Cells(R, (Page + 2) * 2) <> "" Then
isabelle
Bonsoir, j'aimerai alléger la macro suivante en passant par une boucle For - Next et
là je sèche !
Module1 --------- Public Const RshBD1 = 34 Public Const RshBD2 = 35 Public Const RshBD3 = 36 Public sh As String Public shP As Worksheet 'Paramètres Public shBD1 As Worksheet ' BD1 Public shBD2 As Worksheet ' BD1 Public shBD3 As Worksheet ' BD1
Module2 --------- Sub test() Set shP = Sheets(P) If shP.Cells(RshBD1, (Page + 2) * 2) <> "" Then sh = shP.Cells(RshBD1, (Page + 2) * 2) Set shBD1 = Sheets(sh) End If If shP.Cells(RshBD2, (Page + 2) * 2) <> "" Then sh = shP.Cells(RshBD2, (Page + 2) * 2) Set shBD2 = Sheets(sh) End If If shP.Cells(RshBD3, (Page + 2) * 2) <> "" Then sh = shP.Cells(RshBD3, (Page + 2) * 2) Set shBD3 = Sheets(sh) End If End Sub
J'ai essayé, mais sans succès, le code suivant : VBA me renvoi "Incompatibilité de type" Je ne sai comment déclarer la variable A, je pense que le problème vient de
là mais je n'en suis pas sûr.
Sub test() Set shP = Sheets(P) For i=1 to 3 A=("RshBD" & i) If shP.Cells(R, (Page + 2) * 2) <> "" Then sh = shP.Cells(R, (Page + 2) * 2) Select Case Page Case 1 Set shBD1 = Sheets(sh) Case 2 Set shBD2 = Sheets(sh) Case 3 Set shBD3 = Sheets(sh) End Select End If Next i End Sub
Quelqu'un pourrait m'expliquer où est le problème ?
Cordialement, Thierry.
isabelle
bonjour Thierry,
dit moi si ça va comme ça ?
Sub test() Set shP = Sheets(P) vars = Array(RshBD1, RshBD2, RshBD3) For i = 0 To 2 R = vars(i) If shP.Cells(R, (Page + 2) * 2) <> "" Then sh = shP.Cells(R, (Page + 2) * 2) Select Case Page Case 1 Set shBD1 = Sheets(sh) Case 2 Set shBD2 = Sheets(sh) Case 3 Set shBD3 = Sheets(sh) End Select End If Next i End Sub
isabelle
Bonjour Isabelle, merci pour ta réponse. C'est une coquille de ma pars lors de la saisie. Il faut lire R=("RshBD" & i). Mais VBA me renvoi toujours "Incompatibilité de type". Je pense que cela doit provenir de la déclaration de la variable R, seulement, là, je sèche ! A tu une idée ?
Thierry.
"isabelle" a écrit dans le message de news: #0Jj#
bonjour Thierry,
peut être faudrait t'il remplacer A par R ou R par A ...
A=("RshBD" & i) If shP.Cells(R, (Page + 2) * 2) <> "" Then
isabelle
Bonsoir, j'aimerai alléger la macro suivante en passant par une boucle For - Next et
là je sèche !
Module1 --------- Public Const RshBD1 = 34 Public Const RshBD2 = 35 Public Const RshBD3 = 36 Public sh As String Public shP As Worksheet 'Paramètres Public shBD1 As Worksheet ' BD1 Public shBD2 As Worksheet ' BD1 Public shBD3 As Worksheet ' BD1
Module2 --------- Sub test() Set shP = Sheets(P) If shP.Cells(RshBD1, (Page + 2) * 2) <> "" Then sh = shP.Cells(RshBD1, (Page + 2) * 2) Set shBD1 = Sheets(sh) End If If shP.Cells(RshBD2, (Page + 2) * 2) <> "" Then sh = shP.Cells(RshBD2, (Page + 2) * 2) Set shBD2 = Sheets(sh) End If If shP.Cells(RshBD3, (Page + 2) * 2) <> "" Then sh = shP.Cells(RshBD3, (Page + 2) * 2) Set shBD3 = Sheets(sh) End If End Sub
J'ai essayé, mais sans succès, le code suivant : VBA me renvoi "Incompatibilité de type" Je ne sai comment déclarer la variable A, je pense que le problème vient de
là mais je n'en suis pas sûr.
Sub test() Set shP = Sheets(P) For i=1 to 3 A=("RshBD" & i) If shP.Cells(R, (Page + 2) * 2) <> "" Then sh = shP.Cells(R, (Page + 2) * 2) Select Case Page Case 1 Set shBD1 = Sheets(sh) Case 2 Set shBD2 = Sheets(sh) Case 3 Set shBD3 = Sheets(sh) End Select End If Next i End Sub
Quelqu'un pourrait m'expliquer où est le problème ?
Cordialement, Thierry.
bonjour Thierry,
dit moi si ça va comme ça ?
Sub test()
Set shP = Sheets(P)
vars = Array(RshBD1, RshBD2, RshBD3)
For i = 0 To 2
R = vars(i)
If shP.Cells(R, (Page + 2) * 2) <> "" Then
sh = shP.Cells(R, (Page + 2) * 2)
Select Case Page
Case 1
Set shBD1 = Sheets(sh)
Case 2
Set shBD2 = Sheets(sh)
Case 3
Set shBD3 = Sheets(sh)
End Select
End If
Next i
End Sub
isabelle
Bonjour Isabelle,
merci pour ta réponse.
C'est une coquille de ma pars lors de la saisie.
Il faut lire R=("RshBD" & i).
Mais VBA me renvoi toujours "Incompatibilité de type".
Je pense que cela doit provenir de la déclaration de la variable R,
seulement, là, je sèche !
A tu une idée ?
Thierry.
"isabelle" <i@v> a écrit dans le message de news:
#0Jj#WPfIHA.4760@TK2MSFTNGP06.phx.gbl...
bonjour Thierry,
peut être faudrait t'il remplacer A par R ou R par A ...
A=("RshBD" & i)
If shP.Cells(R, (Page + 2) * 2) <> "" Then
isabelle
Bonsoir,
j'aimerai alléger la macro suivante en passant par une boucle For - Next
et
là je sèche !
Module1
---------
Public Const RshBD1 = 34
Public Const RshBD2 = 35
Public Const RshBD3 = 36
Public sh As String
Public shP As Worksheet 'Paramètres
Public shBD1 As Worksheet ' BD1
Public shBD2 As Worksheet ' BD1
Public shBD3 As Worksheet ' BD1
Module2
---------
Sub test()
Set shP = Sheets(P)
If shP.Cells(RshBD1, (Page + 2) * 2) <> "" Then
sh = shP.Cells(RshBD1, (Page + 2) * 2)
Set shBD1 = Sheets(sh)
End If
If shP.Cells(RshBD2, (Page + 2) * 2) <> "" Then
sh = shP.Cells(RshBD2, (Page + 2) * 2)
Set shBD2 = Sheets(sh)
End If
If shP.Cells(RshBD3, (Page + 2) * 2) <> "" Then
sh = shP.Cells(RshBD3, (Page + 2) * 2)
Set shBD3 = Sheets(sh)
End If
End Sub
J'ai essayé, mais sans succès, le code suivant :
VBA me renvoi "Incompatibilité de type"
Je ne sai comment déclarer la variable A, je pense que le problème
vient de
là mais je n'en suis pas sûr.
Sub test()
Set shP = Sheets(P)
For i=1 to 3
A=("RshBD" & i)
If shP.Cells(R, (Page + 2) * 2) <> "" Then
sh = shP.Cells(R, (Page + 2) * 2)
Select Case Page
Case 1
Set shBD1 = Sheets(sh)
Case 2
Set shBD2 = Sheets(sh)
Case 3
Set shBD3 = Sheets(sh)
End Select
End If
Next i
End Sub
Quelqu'un pourrait m'expliquer où est le problème ?
Sub test() Set shP = Sheets(P) vars = Array(RshBD1, RshBD2, RshBD3) For i = 0 To 2 R = vars(i) If shP.Cells(R, (Page + 2) * 2) <> "" Then sh = shP.Cells(R, (Page + 2) * 2) Select Case Page Case 1 Set shBD1 = Sheets(sh) Case 2 Set shBD2 = Sheets(sh) Case 3 Set shBD3 = Sheets(sh) End Select End If Next i End Sub
isabelle
Bonjour Isabelle, merci pour ta réponse. C'est une coquille de ma pars lors de la saisie. Il faut lire R=("RshBD" & i). Mais VBA me renvoi toujours "Incompatibilité de type". Je pense que cela doit provenir de la déclaration de la variable R, seulement, là, je sèche ! A tu une idée ?
Thierry.
"isabelle" a écrit dans le message de news: #0Jj#
bonjour Thierry,
peut être faudrait t'il remplacer A par R ou R par A ...
A=("RshBD" & i) If shP.Cells(R, (Page + 2) * 2) <> "" Then
isabelle
Bonsoir, j'aimerai alléger la macro suivante en passant par une boucle For - Next et
là je sèche !
Module1 --------- Public Const RshBD1 = 34 Public Const RshBD2 = 35 Public Const RshBD3 = 36 Public sh As String Public shP As Worksheet 'Paramètres Public shBD1 As Worksheet ' BD1 Public shBD2 As Worksheet ' BD1 Public shBD3 As Worksheet ' BD1
Module2 --------- Sub test() Set shP = Sheets(P) If shP.Cells(RshBD1, (Page + 2) * 2) <> "" Then sh = shP.Cells(RshBD1, (Page + 2) * 2) Set shBD1 = Sheets(sh) End If If shP.Cells(RshBD2, (Page + 2) * 2) <> "" Then sh = shP.Cells(RshBD2, (Page + 2) * 2) Set shBD2 = Sheets(sh) End If If shP.Cells(RshBD3, (Page + 2) * 2) <> "" Then sh = shP.Cells(RshBD3, (Page + 2) * 2) Set shBD3 = Sheets(sh) End If End Sub
J'ai essayé, mais sans succès, le code suivant : VBA me renvoi "Incompatibilité de type" Je ne sai comment déclarer la variable A, je pense que le problème vient de
là mais je n'en suis pas sûr.
Sub test() Set shP = Sheets(P) For i=1 to 3 A=("RshBD" & i) If shP.Cells(R, (Page + 2) * 2) <> "" Then sh = shP.Cells(R, (Page + 2) * 2) Select Case Page Case 1 Set shBD1 = Sheets(sh) Case 2 Set shBD2 = Sheets(sh) Case 3 Set shBD3 = Sheets(sh) End Select End If Next i End Sub
Quelqu'un pourrait m'expliquer où est le problème ?
Cordialement, Thierry.
Thierry
Bonsoir Isabelle,
De cette manière ça fonctionne comme je le désire.
Encore merci pour ton aide.
Cordialement, Thierry.
"isabelle" a écrit dans le message de news:
bonjour Thierry,
dit moi si ça va comme ça ?
Sub test() Set shP = Sheets(P) vars = Array(RshBD1, RshBD2, RshBD3) For i = 0 To 2 R = vars(i) If shP.Cells(R, (Page + 2) * 2) <> "" Then sh = shP.Cells(R, (Page + 2) * 2) Select Case Page Case 1 Set shBD1 = Sheets(sh) Case 2 Set shBD2 = Sheets(sh) Case 3 Set shBD3 = Sheets(sh) End Select End If Next i End Sub
isabelle
Bonjour Isabelle, merci pour ta réponse. C'est une coquille de ma pars lors de la saisie. Il faut lire R=("RshBD" & i). Mais VBA me renvoi toujours "Incompatibilité de type". Je pense que cela doit provenir de la déclaration de la variable R, seulement, là, je sèche ! A tu une idée ?
Thierry.
"isabelle" a écrit dans le message de news: #0Jj#
bonjour Thierry,
peut être faudrait t'il remplacer A par R ou R par A ...
A=("RshBD" & i) If shP.Cells(R, (Page + 2) * 2) <> "" Then
isabelle
Bonsoir, j'aimerai alléger la macro suivante en passant par une boucle For - Next
et
là je sèche !
Module1 --------- Public Const RshBD1 = 34 Public Const RshBD2 = 35 Public Const RshBD3 = 36 Public sh As String Public shP As Worksheet 'Paramètres Public shBD1 As Worksheet ' BD1 Public shBD2 As Worksheet ' BD1 Public shBD3 As Worksheet ' BD1
Module2 --------- Sub test() Set shP = Sheets(P) If shP.Cells(RshBD1, (Page + 2) * 2) <> "" Then sh = shP.Cells(RshBD1, (Page + 2) * 2) Set shBD1 = Sheets(sh) End If If shP.Cells(RshBD2, (Page + 2) * 2) <> "" Then sh = shP.Cells(RshBD2, (Page + 2) * 2) Set shBD2 = Sheets(sh) End If If shP.Cells(RshBD3, (Page + 2) * 2) <> "" Then sh = shP.Cells(RshBD3, (Page + 2) * 2) Set shBD3 = Sheets(sh) End If End Sub
J'ai essayé, mais sans succès, le code suivant : VBA me renvoi "Incompatibilité de type" Je ne sai comment déclarer la variable A, je pense que le problème vient de
là mais je n'en suis pas sûr.
Sub test() Set shP = Sheets(P) For i=1 to 3 A=("RshBD" & i) If shP.Cells(R, (Page + 2) * 2) <> "" Then sh = shP.Cells(R, (Page + 2) * 2) Select Case Page Case 1 Set shBD1 = Sheets(sh) Case 2 Set shBD2 = Sheets(sh) Case 3 Set shBD3 = Sheets(sh) End Select End If Next i End Sub
Quelqu'un pourrait m'expliquer où est le problème ?
Cordialement, Thierry.
Bonsoir Isabelle,
De cette manière ça fonctionne comme je le désire.
Encore merci pour ton aide.
Cordialement,
Thierry.
"isabelle" <i@v> a écrit dans le message de news:
eCsz7hWfIHA.2448@TK2MSFTNGP03.phx.gbl...
bonjour Thierry,
dit moi si ça va comme ça ?
Sub test()
Set shP = Sheets(P)
vars = Array(RshBD1, RshBD2, RshBD3)
For i = 0 To 2
R = vars(i)
If shP.Cells(R, (Page + 2) * 2) <> "" Then
sh = shP.Cells(R, (Page + 2) * 2)
Select Case Page
Case 1
Set shBD1 = Sheets(sh)
Case 2
Set shBD2 = Sheets(sh)
Case 3
Set shBD3 = Sheets(sh)
End Select
End If
Next i
End Sub
isabelle
Bonjour Isabelle,
merci pour ta réponse.
C'est une coquille de ma pars lors de la saisie.
Il faut lire R=("RshBD" & i).
Mais VBA me renvoi toujours "Incompatibilité de type".
Je pense que cela doit provenir de la déclaration de la variable R,
seulement, là, je sèche !
A tu une idée ?
Thierry.
"isabelle" <i@v> a écrit dans le message de news:
#0Jj#WPfIHA.4760@TK2MSFTNGP06.phx.gbl...
bonjour Thierry,
peut être faudrait t'il remplacer A par R ou R par A ...
A=("RshBD" & i)
If shP.Cells(R, (Page + 2) * 2) <> "" Then
isabelle
Bonsoir,
j'aimerai alléger la macro suivante en passant par une boucle For -
Next
et
là je sèche !
Module1
---------
Public Const RshBD1 = 34
Public Const RshBD2 = 35
Public Const RshBD3 = 36
Public sh As String
Public shP As Worksheet 'Paramètres
Public shBD1 As Worksheet ' BD1
Public shBD2 As Worksheet ' BD1
Public shBD3 As Worksheet ' BD1
Module2
---------
Sub test()
Set shP = Sheets(P)
If shP.Cells(RshBD1, (Page + 2) * 2) <> "" Then
sh = shP.Cells(RshBD1, (Page + 2) * 2)
Set shBD1 = Sheets(sh)
End If
If shP.Cells(RshBD2, (Page + 2) * 2) <> "" Then
sh = shP.Cells(RshBD2, (Page + 2) * 2)
Set shBD2 = Sheets(sh)
End If
If shP.Cells(RshBD3, (Page + 2) * 2) <> "" Then
sh = shP.Cells(RshBD3, (Page + 2) * 2)
Set shBD3 = Sheets(sh)
End If
End Sub
J'ai essayé, mais sans succès, le code suivant :
VBA me renvoi "Incompatibilité de type"
Je ne sai comment déclarer la variable A, je pense que le problème
vient de
là mais je n'en suis pas sûr.
Sub test()
Set shP = Sheets(P)
For i=1 to 3
A=("RshBD" & i)
If shP.Cells(R, (Page + 2) * 2) <> "" Then
sh = shP.Cells(R, (Page + 2) * 2)
Select Case Page
Case 1
Set shBD1 = Sheets(sh)
Case 2
Set shBD2 = Sheets(sh)
Case 3
Set shBD3 = Sheets(sh)
End Select
End If
Next i
End Sub
Quelqu'un pourrait m'expliquer où est le problème ?
De cette manière ça fonctionne comme je le désire.
Encore merci pour ton aide.
Cordialement, Thierry.
"isabelle" a écrit dans le message de news:
bonjour Thierry,
dit moi si ça va comme ça ?
Sub test() Set shP = Sheets(P) vars = Array(RshBD1, RshBD2, RshBD3) For i = 0 To 2 R = vars(i) If shP.Cells(R, (Page + 2) * 2) <> "" Then sh = shP.Cells(R, (Page + 2) * 2) Select Case Page Case 1 Set shBD1 = Sheets(sh) Case 2 Set shBD2 = Sheets(sh) Case 3 Set shBD3 = Sheets(sh) End Select End If Next i End Sub
isabelle
Bonjour Isabelle, merci pour ta réponse. C'est une coquille de ma pars lors de la saisie. Il faut lire R=("RshBD" & i). Mais VBA me renvoi toujours "Incompatibilité de type". Je pense que cela doit provenir de la déclaration de la variable R, seulement, là, je sèche ! A tu une idée ?
Thierry.
"isabelle" a écrit dans le message de news: #0Jj#
bonjour Thierry,
peut être faudrait t'il remplacer A par R ou R par A ...
A=("RshBD" & i) If shP.Cells(R, (Page + 2) * 2) <> "" Then
isabelle
Bonsoir, j'aimerai alléger la macro suivante en passant par une boucle For - Next
et
là je sèche !
Module1 --------- Public Const RshBD1 = 34 Public Const RshBD2 = 35 Public Const RshBD3 = 36 Public sh As String Public shP As Worksheet 'Paramètres Public shBD1 As Worksheet ' BD1 Public shBD2 As Worksheet ' BD1 Public shBD3 As Worksheet ' BD1
Module2 --------- Sub test() Set shP = Sheets(P) If shP.Cells(RshBD1, (Page + 2) * 2) <> "" Then sh = shP.Cells(RshBD1, (Page + 2) * 2) Set shBD1 = Sheets(sh) End If If shP.Cells(RshBD2, (Page + 2) * 2) <> "" Then sh = shP.Cells(RshBD2, (Page + 2) * 2) Set shBD2 = Sheets(sh) End If If shP.Cells(RshBD3, (Page + 2) * 2) <> "" Then sh = shP.Cells(RshBD3, (Page + 2) * 2) Set shBD3 = Sheets(sh) End If End Sub
J'ai essayé, mais sans succès, le code suivant : VBA me renvoi "Incompatibilité de type" Je ne sai comment déclarer la variable A, je pense que le problème vient de
là mais je n'en suis pas sûr.
Sub test() Set shP = Sheets(P) For i=1 to 3 A=("RshBD" & i) If shP.Cells(R, (Page + 2) * 2) <> "" Then sh = shP.Cells(R, (Page + 2) * 2) Select Case Page Case 1 Set shBD1 = Sheets(sh) Case 2 Set shBD2 = Sheets(sh) Case 3 Set shBD3 = Sheets(sh) End Select End If Next i End Sub
Quelqu'un pourrait m'expliquer où est le problème ?