Probleme selection sous VBA excel

Benjamin -  
 guillaumesk850 -
J'ai un probleme de selection de lignes sur excel. En effet, j'ai créé une macro afin de colorier une selection de lignes mais lorsque je clique sur le bouton de commande il me renvoit une erreur : ce qui est normal puisque lorsque je clique sur le bouton de commande, la sélection prise en compte est le bouton de commande. J'aimerais remédier à ce problème.
Merci d'avance

10 réponses

  1. Utilisateur anonyme
     
    Bonjour,

    Copier votre macro ici, je vais vous aider à corriger le tire :-)

    Amicalement
    Lupin
    0
    1. Benjamin
       
      Private Sub couleur_Click()

      Colonne = 1

      If Cells(Selection.Row-1, Colonne).Interior.ColorIndex = 35 Then

      Selection.Interior.ColorIndex = 36

      Else

      Selection.Interior.ColorIndex = 35

      End If

      End Sub


      Voilà. Merci beaucoup
      0
    2. guillaumesk850
       
      Merci pour vos réponses,
      Je cherche mnt comment réaliser la chose suivante :
      apres mon THEN, j'aimerais que si la condition est remplie, le programme selectionne dans une autre page (Feuil5) une colonne de 4 cellules (qui dépendent de ma boucle : for i = ..........) et les mettre en forme (texte en gras, centré sur fond rouge)
      Le probleme que je rencontre réside dans la fonction RANGE ou dans la fonction SELECT (oui je pense avoir presque tout essayer --')
      voila ma ligne, savez vous ce qu'il ne va pas ..?

      CODE 1 :

      Sheets("ZONE").Select
      Range(Cells(1, i), Cells(4, i)).HorizontalAlignment = xlCenter

      CODE 2

      Feuil5.Range(Cells(1, i), Cells(4, i)).HorizontalAlignment = xlCenter

      CODE 3 :

      Sheets("ZONE").Select
      Range(Cells(1, i), Cells(4, i)).Select
      With Selection.Interior
      .ThemeColor = xlThemeColorAccent6
      .HorizontalAlignment = xlCenter
      .VerticalAlignment = xlCenter
      End With


      Encore merci a vous,
      A bientot
      0
  2. Utilisateur anonyme
     
    Bonjour,

    Puisque cette routine est "Private" et d'après votre message, je comprends que la bouton est directement sur la feuille, est-ce bien cela ou le code est sous un "UserForm" ?

    Voilà la routine corrigé, si j'ai bien compris le but de l'expression "Selection.Row - 1".

    Private Sub Couleur_Click()

    If ActiveCell.Offset(-1, 0).Interior.ColorIndex = 35 Then
    ActiveCell.Offset(-1, 0).Interior.ColorIndex = 36
    Else
    ActiveCell.Offset(-1, 0).Interior.ColorIndex = 35
    End If

    End Sub

    Amicalement
    Lupin
    0
  3. Benjamin
     
    Oui le bouton est bien sur la feuille; je n'utilise pas de form.
    Merci encore
    0
  4. Utilisateur anonyme
     
    re :

    Bienvenue

    Au fait, vous parlier de ligne à colorier :

    If ActiveCell.Offset(-1, 0).Interior.ColorIndex = 35 Then
    ActiveCell.Offset(-1, 0).EntireRow.Interior.ColorIndex = 36
    Else
    ActiveCell.Offset(-1, 0).EntireRow.Interior.ColorIndex = 35
    End If

    Amicalement
    Lupin
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. BERIO
     
    j'ai fait un petit programme sous excel 97 avec vba
    avec baucoup de "for..next","Select case" , "dim a(1 to 68)"
    Mon programme a l'air nickel, mais j'ai un message d'erreur
    en cours d'execution "PROCEDURE TROP GRANDE"
    Pouvez-vous m'aider sur le message?
    Merci d'avance.
    0
  7. Utilisateur anonyme
     
    Bonjour,

    Pour ce faire, il vous faut copier votre procédure ici !!!

    Malheureusement, je ne suis pas devin :-)

    Il vous suffirais probablement de découper votre
    procédure en petite fonction.

    Lupin
    0
  8. celine14
     
    Bonjour,

    J'ai une macro qui fonctionne bien pour remplacer les cellules vides par le chiffre 0 une fois que la zone est définie (dans l'exemple ci-dessous zone définie et nommée "ville"). Est-il possible que cette macro fonctionne sur une zone non définie à l'avance. C'est - à dire, j'ouvre ma feuille excel, je sélectionne une zone et je clique sur ma macro pourqu'elle remplace tous les cellules vides par zéro.
    Quelles sont les modifs effectuer sur la macro suivante au niveau de la définition de la variable Range :

    Sub zero1()
    For Each c In Range("ville")
    If c.Value = "" Then
    c.Value = 0
    End If
    Next
    End Sub

    Merci de m'aider ;-)
    Céline
    0
  9. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    Bien sûr, tu remplaces par 'for each c in selection'
    eric
    0
    1. celine14
       
      Bonjour Eric,
      Merci bcp ! CA fct tb.
      0
  10. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    De rien...
    Pense à mettre résolu ;-)
    Bonne soirée
    eric
    0
    1. celine14
       
      Oup's... impossible de trouver comment mettre à 'résolu'? T'as une idée?
      C'est la première fois que je poste sur ce forum ;-)

      Céline
      0
  11. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonsoir,
    Il parait qu'il faut cliquer sur 'voir mes interventions' , sélectionner la question et en haut il y a tout ce qu'il faut pour changer le statut
    eric
    0