Mettre une cellule en variable

Fermé
addict - 9 juin 2009 à 11:04
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 9 juin 2009 à 12:27
Bonjour,

j'ai crée une fonction permettant de réaliser une mise en forme. Ce que j'aimerais faire, c'est pouvoir commencer cette mise en forme à partir de la cellule que je souhaite. Dans mon code, j'ai écrit :
Range("A2").Select

et le reste de ma procédure. Ce que j'aimerais pouvoir faire, c'est commencer à la cellule que je souhaite. je ne sais pas si c'est possible....

J'ai une deuxième question par la même occasion. J'ai crée un userforms qui demande si le matériaux contient du bois ou du verre. Le fait est que le matériaux peut contenir soit du bois, soit du verre, soit les deux, soit rien. J'aimerais que la mise en forme de mon tableau découle de ce choix. Est t'il possible d'avoir une double condition dans une boucle If et si oui, comment faire. J'ai essayé avec and, mais ça ne marche pas. Pour répondre à la question de la contenance en bois et/ou verre, il est possible de répondre "oui" ou "non" par l'intermédiaire de bouton d'option.

merci,

7 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
9 juin 2009 à 11:37
Bonjour,
tout d'abord la 1ère question. Elle se traite avec une Inputbox :

Dim valeur As String
valeur = InputBox("saisir dans le format : B1 ou G23 etc...", "cellule")
Range(valeur).Select

2ème question : oui par contre je n'ai pas bien compris la question...
0
Merci pour la première réponse !

Quand à la deuxième, j'essaye d'expliquer plus clairement :

J'ai un Userforms, qui demande à l'utilisateur si le matériaux contient du bois. il peut répondre par oui ou non à l'aide de case à cocher (J'ai changé par rapport au bouton d'option, inapproprié dans ce cas) . Puis, je répose la même question pour le verre et il y a toujours le choix, par le même principe qu'avant, pour la réponse. Ensuite, je code cela :


Public Sub NextMC_Click()

ActiveWorkbooks = "MaterialCompositeClasseur"
ActiveSheets = "detail"
If NextMC.Enabled = True Then

Call MiseEnpage1

End If

Unload Me

End Sub

Sub YesWood_Click()

If YesWood.Enabled = True Then

Call MiseEnPageWood

End If

End Sub

Private Sub YesRRM_Click()
If YesRRM.Enabled = True Then

Call MiseEnPageRRM

End If

If YesWood.Enabled And YesRRM.Enabled = True Then

Call MiseEnPageWoodRRM

End If

End Sub

je ne sais pas si cela va vous aider.
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
9 juin 2009 à 11:50
Qu'est ce qui ne fonctionne pas dans ce code?
0
et bien les MiseEnPageWood et MiseEnPageRRM utilise toute les deux la cellule G2. Si il y a du bois et du verre, alors ce sont les cellules G2 et H2 qui sont mise en forme. ce que je veux, c'est que l'on puise si l'on se trompe, "enlever la mise en page". j'ai essayé :

Else: Range("G2").Select
ActiveCell.FormulaR1C1 = " "

En faite, je crois que ma demande à juste évolué depuis tout à l'heure ^^
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
9 juin 2009 à 11:58
Donc le problème ne vient pas du code que tu as donné mais des fonctions : MiseEnPageWood et MiseEnPageRRM ...
Fais voir le code de ces 2 fonctions...
0
Voila le premier code. pour MiseEnPageWood.

Public Function()
Range("G2").Select
ActiveCell.FormulaR1C1 = "Certified Wood -FSC Number-"
Range("G2:G3").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
.MergeCells = False
End With
Selection.Merge

Range("G2").Select

Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone

With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With

With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With

With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With

With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With


With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With

Columns("A:G").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = True
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
End With

Range("A2:G2").Select
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With

With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With

With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With

With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With

With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With

With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With

End Function

Public Function MiseEnPageRRM()

Range("G2").Select
ActiveCell.FormulaR1C1 = "Glasse"
Range("G2:G3").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
.MergeCells = False
End With
Selection.Merge

Range("G2").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With

With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With

With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With

With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With

With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With

Columns("A:G").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = True
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
End With

Range("A2:G2").Select
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With

With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With

With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With

With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With

With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With

With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With

End Function

Ce que j'aimerais, c'est que si on choisit oui, puis qu'on change d'avis, toute la mise en page, soit éffacé.
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
9 juin 2009 à 12:27
Ce que j'aimerais, c'est que si on choisit oui, puis qu'on change d'avis, toute la mise en page, soit éffacé.
Une fois qu'une macro est exécuté, on ne peux pas revenir en arrière. Il te faut une nouvelle macro qui remet tout en place. Crée donc une macro annulemiseenpage... de la même manière que les deux autres
0