OVH Cloud OVH Cloud

variable dans excel

2 réponses
Avatar
af
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

2 réponses

Avatar
FxM
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




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:ú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