OVH Cloud OVH Cloud

Toujours bloqué ! variable dans Excel

3 réponses
Avatar
af
Merci pour ta réponse mais je n'ai aucun remplacement de ABC par le contenu
de la cellule H1 de la feuille "base".
Je remets le code ici... si quelqu'un a une autre idée. Par avance, merci.
Alex





Sub Phase01()
'
' Phase01 Macro
' Macro enregistrée le 02/09/2005 par Alex
'
' donnée principale
Sheets("base").Select
Range("H1").Select

' valeur PRIMAIRE
Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Msg = "macro lancée, voulez-vous continuer ?" ' Définit le message.
Style = vbYesNo + vbCritical + vbDefaultButton2 ' Définit les boutons.
Title = "Mois à exporter en compta " ' Définit le titre.
' Affiche le message.
Response = MsgBox(Msg, Style, Title)
If Response = vbYes Then ' L'utilisateur a choisi Oui.
MyString = "Oui" ' Effectue une action.
' déclare variable de chaine
Dim answer As String
If answer = Empty Then

Else
Sheets("base").Select

Var = Sheets("base").Range("H1").Text
Sheets("MasqueComptabilité").Range("G2:H402").Select
Selection.Replace What:="ABC", Replacement:=Var, LookAt:=xlPart,
_
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False


' purge des données sur "export"
Range("A1:C1").Select
Sheets("export").Select
Cells.Select
Selection.ClearContents

' copie des infos sur "export" depuis "masque comptabilité"
Range("A1").Select
Sheets("BASE").Select
Range("A1:C1").Select
Sheets("MasqueComptabilité").Select
Range("A1:J406").Select
Selection.Copy
Sheets("export").Select
ActiveSheet.Paste
Range("A1").Select
Application.CutCopyMode = False
Calculate
Range("B2").Select
Sheets("BASE").Select
Range("H1").Select

'Positionnement pour vérification
Sheets("export").Select
Range("I405").Select
' message
MsgBox "dans cette étape, vous pouvez modifier des données.
L'équilibre doit être respecté. Sur les comptes de classe 6 et 7, la
deuxième ligne est pour l'analytique"


End If




Else ' L'utilisateur a choisi Non.
MyString = "Non" ' Effectue une action.
MsgBox "aucune action effectuée"


End If
End Sub












"FxM" <nullos@greuchmeu.ici> a écrit dans le message de news:
dft3ut.3vuds27.1@maison.ici...
> Bonsoir,
>
> Essaie avec (non testé) :
>
> var = Sheets("base").Range("H1").text
> Sheets("MasqueComptabilité").Range("G2:H402").Select
> Selection.Replace What:="ABC", Replacement:=var, LookAt:=xlPart, _
> SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
> ReplaceFormat:=False
>
> @+
> FxM
>
>
> af a écrit :
>> Bonjour,
>>
>> But :
>> Remplacer les données d'une plage par la valeur d'une cellule par une
>> macro.
>>
>> Les données :
>> Sur une Feuille1, dans la cellule H1, j'ai une valeur de type texte (du
>> style 01, 02, 03, etc...) qui représentent les mois de l'année.
>> Sur une Feuille2, toute une plage fixe de donnée G2:H402 contient une
>> valeur ABC (qui correspond au nom des feuilles 01 à 12)
>>
>> Sur cette feuille2, je souhaite remplacer tous les ABC de la plage
>> G2:H402 par la valeur de la feuille1 en H1.
>>
>> Ca parait tout simple, mais je bloque.
>>
>> Merci d'avance pour vos réponses.
>>
>> Voici le code de cette première phase :
>>
>>
>>
>>
>> Sub Phase01()
>> '
>> ' Phase01 Macro
>> ' Macro enregistrée le 02/09/2005 par Alex
>> '
>> ' donnée principale
>> Sheets("base").Select
>> Range("H1").Select
>>
>> ' valeur PRIMAIRE
>> Dim Msg, Style, Title, Help, Ctxt, Response, MyString
>> Msg = "macro lancée, voulez-vous continuer ?" ' Définit le message.
>> Style = vbYesNo + vbCritical + vbDefaultButton2 ' Définit les boutons.
>> Title = "Mois à exporter en compta " ' Définit le titre.
>> ' Affiche le message.
>> Response = MsgBox(Msg, Style, Title)
>> If Response = vbYes Then ' L'utilisateur a choisi Oui.
>> MyString = "Oui" ' Effectue une action.
>> ' déclare variable de chaine
>> Dim answer As String
>> ' affecte la valeur à envoyer dans la boite de dialogue
>> answer = InputBox(Prompt:="quelle est la feuille à traiter?")
>> 'boucle
>> If answer = Empty Then
>> MsgBox Prompt:="saisir un format de mois (00) comme les
>> feuilles excel"
>>
>> Else
>> answer = String(2, 99)
>> Sheets("base").Select
>> Range("H1").Copy
>> Sheets("MasqueComptabilité").Select
>> Range("G2:H402").Select
>> Selection.Replace What:="ABC", Replacement:="'02'",
>> LookAt:=xlPart, _
>> SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False,
>> _
>> ReplaceFormat:=False
>>
>> ' purge des données sur "export"
>> Range("A1:C1").Select
>> Sheets("export").Select
>> Cells.Select
>> Selection.ClearContents
>>
>> ' copie des infos sur "export" depuis "masque comptabilité"
>> Range("A1").Select
>> Sheets("BASE").Select
>> Range("A1:C1").Select
>> Sheets("MasqueComptabilité").Select
>> Range("A1:J406").Select
>> Selection.Copy
>> Sheets("export").Select
>> ActiveSheet.Paste
>> Range("A1").Select
>> Application.CutCopyMode = False
>> Calculate
>> Range("B2").Select
>> Sheets("BASE").Select
>> Range("H1").Select
>>
>> 'Positionnement pour vérification
>> Sheets("export").Select
>> Range("I405").Select
>> ' message
>> MsgBox "dans cette étape, vous pouvez modifier des données.
>> L'équilibre doit être respecté. Sur les comptes de classe 6 et 7, la
>> deuxième ligne est pour l'analytique"
>>
>>
>> End If
>>
>>
>>
>>
>> Else ' L'utilisateur a choisi Non.
>> MyString = "Non" ' Effectue une action.
>> MsgBox "aucune action effectuée"
>>
>>
>> End If
>> End Sub
>>
>>
>>
>> La phase 2 fonctionne. C'est un export comptable et un import au format
>> SAGE.
>> Il me reste plus que cette broutille !
>> Faut-il déclarer une variable ?
>>
>> Alexandre
>>

3 réponses

Avatar
Michel Gaboly
Bonjour,

Un truc pas très clair :

Sur une Feuille2, toute une plage fixe de donnée G2:H402 contient une
valeur ABC (qui correspond au nom des feuilles 01 à 12)





Toutes les cellules contiennent la même chose à un instant donné ou
contiennent-elles un des 12 noms, auquel cas seules celles qui
contiennent l'un ces de ces noms (en l'occurrence "ABC") sont à
remplacer par le contenu de la cellule H1 de "Base" ?

Si elles contiennent toutes la même chose, le recherche remplacer est
inutile ; il suffit de reporter la valeur de H1 ou d'inscrire "ºse!H1"

Sinon,

Sub Test()
Dim Ref As String
Ref = Sheets("Base").Range("H1")
Range("G2:H402").Replace "ABC", Ref, xlWhole, , False
End Sub

devrait suffire, la feuille sur laquelle doit s'effectuer le
remplacement devant être au premier plan. Dans le cas contraire, il faut
qualifier le second range :

Sub Test()
Dim Ref As String
Ref = Sheets("Base").Range("H1")
Sheets("Feuil2").Range("G2:H402").Replace "ABC", Ref, xlWhole, , False
End Sub


Merci pour ta réponse mais je n'ai aucun remplacement de ABC par le contenu
de la cellule H1 de la feuille "base".
Je remets le code ici... si quelqu'un a une autre idée. Par avance, merci.
Alex





Sub Phase01()
'
' Phase01 Macro
' Macro enregistrée le 02/09/2005 par Alex
'
' donnée principale
Sheets("base").Select
Range("H1").Select

' valeur PRIMAIRE
Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Msg = "macro lancée, voulez-vous continuer ?" ' Définit le message.
Style = vbYesNo + vbCritical + vbDefaultButton2 ' Définit les boutons.
Title = "Mois à exporter en compta " ' Définit le titre.
' Affiche le message.
Response = MsgBox(Msg, Style, Title)
If Response = vbYes Then ' L'utilisateur a choisi Oui.
MyString = "Oui" ' Effectue une action.
' déclare variable de chaine
Dim answer As String
If answer = Empty Then

Else
Sheets("base").Select

Var = Sheets("base").Range("H1").Text
Sheets("MasqueComptabilité").Range("G2:H402").Select
Selection.Replace What:="ABC", Replacement:=Var, LookAt:=xlPart,
_
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse


' purge des données sur "export"
Range("A1:C1").Select
Sheets("export").Select
Cells.Select
Selection.ClearContents

' copie des infos sur "export" depuis "masque comptabilité"
Range("A1").Select
Sheets("BASE").Select
Range("A1:C1").Select
Sheets("MasqueComptabilité").Select
Range("A1:J406").Select
Selection.Copy
Sheets("export").Select
ActiveSheet.Paste
Range("A1").Select
Application.CutCopyMode = False
Calculate
Range("B2").Select
Sheets("BASE").Select
Range("H1").Select

'Positionnement pour vérification
Sheets("export").Select
Range("I405").Select
' message
MsgBox "dans cette étape, vous pouvez modifier des données.
L'équilibre doit être respecté. Sur les comptes de classe 6 et 7, la
deuxième ligne est pour l'analytique"


End If




Else ' L'utilisateur a choisi Non.
MyString = "Non" ' Effectue une action.
MsgBox "aucune action effectuée"


End If
End Sub












"FxM" a écrit dans le message de news:


Bonsoir,

Essaie avec (non testé) :

var = Sheets("base").Range("H1").text
Sheets("MasqueComptabilité").Range("G2:H402").Select
Selection.Replace What:="ABC", Replacement:=var, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse

@+
FxM



Bonjour,

But :
Remplacer les données d'une plage par la valeur d'une cellule par une
macro.

Les données :
Sur une Feuille1, dans la cellule H1, j'ai une valeur de type texte (du
style 01, 02, 03, etc...) qui représentent les mois de l'année.
Sur une Feuille2, toute une plage fixe de donnée G2:H402 contient une
valeur ABC (qui correspond au nom des feuilles 01 à 12)

Sur cette feuille2, je souhaite remplacer tous les ABC de la plage
G2:H402 par la valeur de la feuille1 en H1.

Ca parait tout simple, mais je bloque.

Merci d'avance pour vos réponses.

Voici le code de cette première phase :




Sub Phase01()
'
' Phase01 Macro
' Macro enregistrée le 02/09/2005 par Alex
'
' donnée principale
Sheets("base").Select
Range("H1").Select

' valeur PRIMAIRE
Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Msg = "macro lancée, voulez-vous continuer ?" ' Définit le message.
Style = vbYesNo + vbCritical + vbDefaultButton2 ' Définit les boutons.
Title = "Mois à exporter en compta " ' Définit le titre.
' Affiche le message.
Response = MsgBox(Msg, Style, Title)
If Response = vbYes Then ' L'utilisateur a choisi Oui.
MyString = "Oui" ' Effectue une action.
' déclare variable de chaine
Dim answer As String
' affecte la valeur à envoyer dans la boite de dialogue
answer = InputBox(Prompt:="quelle est la feuille à traiter?")
'boucle
If answer = Empty Then
MsgBox Prompt:="saisir un format de mois (00) comme les
feuilles excel"

Else
answer = String(2, 99)
Sheets("base").Select
Range("H1").Copy
Sheets("MasqueComptabilité").Select
Range("G2:H402").Select
Selection.Replace What:="ABC", Replacement:="'02'",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse,
_
ReplaceFormat:úlse

' purge des données sur "export"
Range("A1:C1").Select
Sheets("export").Select
Cells.Select
Selection.ClearContents

' copie des infos sur "export" depuis "masque comptabilité"
Range("A1").Select
Sheets("BASE").Select
Range("A1:C1").Select
Sheets("MasqueComptabilité").Select
Range("A1:J406").Select
Selection.Copy
Sheets("export").Select
ActiveSheet.Paste
Range("A1").Select
Application.CutCopyMode = False
Calculate
Range("B2").Select
Sheets("BASE").Select
Range("H1").Select

'Positionnement pour vérification
Sheets("export").Select
Range("I405").Select
' message
MsgBox "dans cette étape, vous pouvez modifier des données.
L'équilibre doit être respecté. Sur les comptes de classe 6 et 7, la
deuxième ligne est pour l'analytique"


End If




Else ' L'utilisateur a choisi Non.
MyString = "Non" ' Effectue une action.
MsgBox "aucune action effectuée"


End If
End Sub



La phase 2 fonctionne. C'est un export comptable et un import au format
SAGE.
Il me reste plus que cette broutille !
Faut-il déclarer une variable ?

Alexandre









--
Cordialement,

Michel Gaboly
www.gaboly.com



Avatar
af
Je suis désolé, je dois être une grosse quiche.
Pour refaire un point global :
* une feuille "base" qui a sur la cellule H1 la valeur 01, 02, 03 etc... qui
correspond au mois de l'année (au format texte)
* 12 feuilles appelées de 01 à 12 qui sont des saisies de caisse jour par
jour.
* une feuille "MasqueCompabilité" qui comprend la structure complète de
l'écriture comptable. Et dans cette zone G2:H402, la formule étant ='01'!une
zone de la feuille 01
Pour le moment, il y a ABC. Mais le but étant de remplacer cette valeur ABC
par le contenu de la cellule H1 de la feuille "base".
La complexité étant de remplacer par le contenu d'une cellule
Alors, je cafouille.

Les phases sont les suivantes :
* La macro copie des données
* phase de vérification
* La macro export selon un format SAGE
* L'import s'effectue en compta


Help me !







"Michel Gaboly" a écrit dans le message de news:
es$
Bonjour,

Un truc pas très clair :

Sur une Feuille2, toute une plage fixe de donnée G2:H402 contient une
valeur ABC (qui correspond au nom des feuilles 01 à 12)





Toutes les cellules contiennent la même chose à un instant donné ou
contiennent-elles un des 12 noms, auquel cas seules celles qui contiennent
l'un ces de ces noms (en l'occurrence "ABC") sont à remplacer par le
contenu de la cellule H1 de "Base" ?

Si elles contiennent toutes la même chose, le recherche remplacer est
inutile ; il suffit de reporter la valeur de H1 ou d'inscrire "ºse!H1"

Sinon,

Sub Test()
Dim Ref As String
Ref = Sheets("Base").Range("H1")
Range("G2:H402").Replace "ABC", Ref, xlWhole, , False
End Sub

devrait suffire, la feuille sur laquelle doit s'effectuer le remplacement
devant être au premier plan. Dans le cas contraire, il faut qualifier le
second range :

Sub Test()
Dim Ref As String
Ref = Sheets("Base").Range("H1")
Sheets("Feuil2").Range("G2:H402").Replace "ABC", Ref, xlWhole, , False
End Sub


Merci pour ta réponse mais je n'ai aucun remplacement de ABC par le
contenu
de la cellule H1 de la feuille "base".
Je remets le code ici... si quelqu'un a une autre idée. Par avance,
merci.
Alex





Sub Phase01()
'
' Phase01 Macro
' Macro enregistrée le 02/09/2005 par Alex
'
' donnée principale
Sheets("base").Select
Range("H1").Select

' valeur PRIMAIRE
Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Msg = "macro lancée, voulez-vous continuer ?" ' Définit le message.
Style = vbYesNo + vbCritical + vbDefaultButton2 ' Définit les boutons.
Title = "Mois à exporter en compta " ' Définit le titre.
' Affiche le message.
Response = MsgBox(Msg, Style, Title)
If Response = vbYes Then ' L'utilisateur a choisi Oui.
MyString = "Oui" ' Effectue une action.
' déclare variable de chaine
Dim answer As String
If answer = Empty Then

Else
Sheets("base").Select

Var = Sheets("base").Range("H1").Text
Sheets("MasqueComptabilité").Range("G2:H402").Select
Selection.Replace What:="ABC", Replacement:=Var,
LookAt:=xlPart,
_
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse,
_
ReplaceFormat:úlse


' purge des données sur "export"
Range("A1:C1").Select
Sheets("export").Select
Cells.Select
Selection.ClearContents

' copie des infos sur "export" depuis "masque comptabilité"
Range("A1").Select
Sheets("BASE").Select
Range("A1:C1").Select
Sheets("MasqueComptabilité").Select
Range("A1:J406").Select
Selection.Copy
Sheets("export").Select
ActiveSheet.Paste
Range("A1").Select
Application.CutCopyMode = False
Calculate
Range("B2").Select
Sheets("BASE").Select
Range("H1").Select

'Positionnement pour vérification
Sheets("export").Select
Range("I405").Select
' message
MsgBox "dans cette étape, vous pouvez modifier des données.
L'équilibre doit être respecté. Sur les comptes de classe 6 et 7, la
deuxième ligne est pour l'analytique"


End If




Else ' L'utilisateur a choisi Non.
MyString = "Non" ' Effectue une action.
MsgBox "aucune action effectuée"


End If
End Sub












"FxM" a écrit dans le message de news:


Bonsoir,

Essaie avec (non testé) :

var = Sheets("base").Range("H1").text
Sheets("MasqueComptabilité").Range("G2:H402").Select
Selection.Replace What:="ABC", Replacement:=var, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse

@+
FxM



Bonjour,

But :
Remplacer les données d'une plage par la valeur d'une cellule par une
macro.

Les données :
Sur une Feuille1, dans la cellule H1, j'ai une valeur de type texte (du
style 01, 02, 03, etc...) qui représentent les mois de l'année.
Sur une Feuille2, toute une plage fixe de donnée G2:H402 contient une
valeur ABC (qui correspond au nom des feuilles 01 à 12)

Sur cette feuille2, je souhaite remplacer tous les ABC de la plage
G2:H402 par la valeur de la feuille1 en H1.

Ca parait tout simple, mais je bloque.

Merci d'avance pour vos réponses.

Voici le code de cette première phase :




Sub Phase01()
'
' Phase01 Macro
' Macro enregistrée le 02/09/2005 par Alex
'
' donnée principale
Sheets("base").Select
Range("H1").Select

' valeur PRIMAIRE
Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Msg = "macro lancée, voulez-vous continuer ?" ' Définit le message.
Style = vbYesNo + vbCritical + vbDefaultButton2 ' Définit les
boutons.
Title = "Mois à exporter en compta " ' Définit le titre.
' Affiche le message.
Response = MsgBox(Msg, Style, Title)
If Response = vbYes Then ' L'utilisateur a choisi Oui.
MyString = "Oui" ' Effectue une action.
' déclare variable de chaine
Dim answer As String
' affecte la valeur à envoyer dans la boite de dialogue
answer = InputBox(Prompt:="quelle est la feuille à traiter?")
'boucle
If answer = Empty Then
MsgBox Prompt:="saisir un format de mois (00) comme les
feuilles excel"

Else
answer = String(2, 99)
Sheets("base").Select
Range("H1").Copy
Sheets("MasqueComptabilité").Select
Range("G2:H402").Select
Selection.Replace What:="ABC", Replacement:="'02'",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse,
SearchFormat:úlse,
_
ReplaceFormat:úlse

' purge des données sur "export"
Range("A1:C1").Select
Sheets("export").Select
Cells.Select
Selection.ClearContents

' copie des infos sur "export" depuis "masque comptabilité"
Range("A1").Select
Sheets("BASE").Select
Range("A1:C1").Select
Sheets("MasqueComptabilité").Select
Range("A1:J406").Select
Selection.Copy
Sheets("export").Select
ActiveSheet.Paste
Range("A1").Select
Application.CutCopyMode = False
Calculate
Range("B2").Select
Sheets("BASE").Select
Range("H1").Select

'Positionnement pour vérification
Sheets("export").Select
Range("I405").Select
' message
MsgBox "dans cette étape, vous pouvez modifier des données.
L'équilibre doit être respecté. Sur les comptes de classe 6 et 7, la
deuxième ligne est pour l'analytique"


End If




Else ' L'utilisateur a choisi Non.
MyString = "Non" ' Effectue une action.
MsgBox "aucune action effectuée"


End If
End Sub



La phase 2 fonctionne. C'est un export comptable et un import au format
SAGE.
Il me reste plus que cette broutille !
Faut-il déclarer une variable ?

Alexandre









--
Cordialement,

Michel Gaboly
www.gaboly.com





Avatar
af
Merci ca fonctionne bien maintenant


C'est génial !




"Michel Gaboly" a écrit dans le message de news:
es$
Bonjour,

Un truc pas très clair :

Sur une Feuille2, toute une plage fixe de donnée G2:H402 contient une
valeur ABC (qui correspond au nom des feuilles 01 à 12)





Toutes les cellules contiennent la même chose à un instant donné ou
contiennent-elles un des 12 noms, auquel cas seules celles qui contiennent
l'un ces de ces noms (en l'occurrence "ABC") sont à remplacer par le
contenu de la cellule H1 de "Base" ?

Si elles contiennent toutes la même chose, le recherche remplacer est
inutile ; il suffit de reporter la valeur de H1 ou d'inscrire "ºse!H1"

Sinon,

Sub Test()
Dim Ref As String
Ref = Sheets("Base").Range("H1")
Range("G2:H402").Replace "ABC", Ref, xlWhole, , False
End Sub

devrait suffire, la feuille sur laquelle doit s'effectuer le remplacement
devant être au premier plan. Dans le cas contraire, il faut qualifier le
second range :

Sub Test()
Dim Ref As String
Ref = Sheets("Base").Range("H1")
Sheets("Feuil2").Range("G2:H402").Replace "ABC", Ref, xlWhole, , False
End Sub


Merci pour ta réponse mais je n'ai aucun remplacement de ABC par le
contenu
de la cellule H1 de la feuille "base".
Je remets le code ici... si quelqu'un a une autre idée. Par avance,
merci.
Alex





Sub Phase01()
'
' Phase01 Macro
' Macro enregistrée le 02/09/2005 par Alex
'
' donnée principale
Sheets("base").Select
Range("H1").Select

' valeur PRIMAIRE
Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Msg = "macro lancée, voulez-vous continuer ?" ' Définit le message.
Style = vbYesNo + vbCritical + vbDefaultButton2 ' Définit les boutons.
Title = "Mois à exporter en compta " ' Définit le titre.
' Affiche le message.
Response = MsgBox(Msg, Style, Title)
If Response = vbYes Then ' L'utilisateur a choisi Oui.
MyString = "Oui" ' Effectue une action.
' déclare variable de chaine
Dim answer As String
If answer = Empty Then

Else
Sheets("base").Select

Var = Sheets("base").Range("H1").Text
Sheets("MasqueComptabilité").Range("G2:H402").Select
Selection.Replace What:="ABC", Replacement:=Var,
LookAt:=xlPart,
_
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse,
_
ReplaceFormat:úlse


' purge des données sur "export"
Range("A1:C1").Select
Sheets("export").Select
Cells.Select
Selection.ClearContents

' copie des infos sur "export" depuis "masque comptabilité"
Range("A1").Select
Sheets("BASE").Select
Range("A1:C1").Select
Sheets("MasqueComptabilité").Select
Range("A1:J406").Select
Selection.Copy
Sheets("export").Select
ActiveSheet.Paste
Range("A1").Select
Application.CutCopyMode = False
Calculate
Range("B2").Select
Sheets("BASE").Select
Range("H1").Select

'Positionnement pour vérification
Sheets("export").Select
Range("I405").Select
' message
MsgBox "dans cette étape, vous pouvez modifier des données.
L'équilibre doit être respecté. Sur les comptes de classe 6 et 7, la
deuxième ligne est pour l'analytique"


End If




Else ' L'utilisateur a choisi Non.
MyString = "Non" ' Effectue une action.
MsgBox "aucune action effectuée"


End If
End Sub












"FxM" a écrit dans le message de news:


Bonsoir,

Essaie avec (non testé) :

var = Sheets("base").Range("H1").text
Sheets("MasqueComptabilité").Range("G2:H402").Select
Selection.Replace What:="ABC", Replacement:=var, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse

@+
FxM



Bonjour,

But :
Remplacer les données d'une plage par la valeur d'une cellule par une
macro.

Les données :
Sur une Feuille1, dans la cellule H1, j'ai une valeur de type texte (du
style 01, 02, 03, etc...) qui représentent les mois de l'année.
Sur une Feuille2, toute une plage fixe de donnée G2:H402 contient une
valeur ABC (qui correspond au nom des feuilles 01 à 12)

Sur cette feuille2, je souhaite remplacer tous les ABC de la plage
G2:H402 par la valeur de la feuille1 en H1.

Ca parait tout simple, mais je bloque.

Merci d'avance pour vos réponses.

Voici le code de cette première phase :




Sub Phase01()
'
' Phase01 Macro
' Macro enregistrée le 02/09/2005 par Alex
'
' donnée principale
Sheets("base").Select
Range("H1").Select

' valeur PRIMAIRE
Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Msg = "macro lancée, voulez-vous continuer ?" ' Définit le message.
Style = vbYesNo + vbCritical + vbDefaultButton2 ' Définit les
boutons.
Title = "Mois à exporter en compta " ' Définit le titre.
' Affiche le message.
Response = MsgBox(Msg, Style, Title)
If Response = vbYes Then ' L'utilisateur a choisi Oui.
MyString = "Oui" ' Effectue une action.
' déclare variable de chaine
Dim answer As String
' affecte la valeur à envoyer dans la boite de dialogue
answer = InputBox(Prompt:="quelle est la feuille à traiter?")
'boucle
If answer = Empty Then
MsgBox Prompt:="saisir un format de mois (00) comme les
feuilles excel"

Else
answer = String(2, 99)
Sheets("base").Select
Range("H1").Copy
Sheets("MasqueComptabilité").Select
Range("G2:H402").Select
Selection.Replace What:="ABC", Replacement:="'02'",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse,
SearchFormat:úlse,
_
ReplaceFormat:úlse

' purge des données sur "export"
Range("A1:C1").Select
Sheets("export").Select
Cells.Select
Selection.ClearContents

' copie des infos sur "export" depuis "masque comptabilité"
Range("A1").Select
Sheets("BASE").Select
Range("A1:C1").Select
Sheets("MasqueComptabilité").Select
Range("A1:J406").Select
Selection.Copy
Sheets("export").Select
ActiveSheet.Paste
Range("A1").Select
Application.CutCopyMode = False
Calculate
Range("B2").Select
Sheets("BASE").Select
Range("H1").Select

'Positionnement pour vérification
Sheets("export").Select
Range("I405").Select
' message
MsgBox "dans cette étape, vous pouvez modifier des données.
L'équilibre doit être respecté. Sur les comptes de classe 6 et 7, la
deuxième ligne est pour l'analytique"


End If




Else ' L'utilisateur a choisi Non.
MyString = "Non" ' Effectue une action.
MsgBox "aucune action effectuée"


End If
End Sub



La phase 2 fonctionne. C'est un export comptable et un import au format
SAGE.
Il me reste plus que cette broutille !
Faut-il déclarer une variable ?

Alexandre









--
Cordialement,

Michel Gaboly
www.gaboly.com