Mettre une cellule en variable

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,
Configuration: Windows XP
Firefox 3.0.5

7 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    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...
    1. 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.
      1. 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 ^^
        1. Modérateur
          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...
          1. 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é.
            1. Modérateur
              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