Considérer une cellule "au hasard" sur VBA
Résolu/Fermé
A voir également:
- Considérer une cellule "au hasard" sur VBA
- Aller à la ligne dans une cellule excel - Guide
- Excel compter cellule couleur sans vba - Guide
- Verrouiller cellule excel - Guide
- Excel cellule couleur si condition texte - Guide
- Vba range avec variable ✓ - Forum VB / VBA
2 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
Modifié par pijaku le 19/07/2013 à 09:48
Modifié par pijaku le 19/07/2013 à 09:48
Bonjour,
Voir cette astuce CCM pour le nombre de lignes......
Cordialement,
Franck P
Sub AleaCel() Dim Ligne As Long Dim Colonne As Integer Colonne = 2 Randomize Ligne = Round(Rnd * 65535, 0) If Cells(Ligne, Colonne) = "oui" Then Cells(Ligne, Colonne + 2) = "super" MsgBox "Ligne gagnante : " & Ligne End If End Sub
Voir cette astuce CCM pour le nombre de lignes......
Cordialement,
Franck P
Supeeer ! Merci =)
Il y avait juste un petit truc à modifier car je ne me suis pas super bien exprimé.
Car je voulais en fait que pour toutes les cellules de la colonne spécifiée, si l'une d'entre elle est égale à oui, alors la cellule relativement 2 colonnes plus loin d'elle est égale à super. Mais tout le contexte était bon et j'ai pu commencer à comprendre mes premières fonctions VBA !! ^^
Je me suis débrouillé comme ça :
Sub AleaCel()
Dim Ligne As Long
Dim Colonne As Integer
Colonne = 3
For i = 1 To 200
Ligne = i
If Cells(Ligne, Colonne) = "oui" Then
Cells(Ligne, Colonne + 2) = "super"
End If
Next
End Sub
Il y avait juste un petit truc à modifier car je ne me suis pas super bien exprimé.
Car je voulais en fait que pour toutes les cellules de la colonne spécifiée, si l'une d'entre elle est égale à oui, alors la cellule relativement 2 colonnes plus loin d'elle est égale à super. Mais tout le contexte était bon et j'ai pu commencer à comprendre mes premières fonctions VBA !! ^^
Je me suis débrouillé comme ça :
Sub AleaCel()
Dim Ligne As Long
Dim Colonne As Integer
Colonne = 3
For i = 1 To 200
Ligne = i
If Cells(Ligne, Colonne) = "oui" Then
Cells(Ligne, Colonne + 2) = "super"
End If
Next
End Sub
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 744
19 juil. 2013 à 10:15
19 juil. 2013 à 10:15
Dans ta procédure :
- Ligne (ou i) est superflu
- déclare systématiquement tes variables : Dim i As Byte
Ta macro devient donc :
Un tuto sur les variables...
- Ligne (ou i) est superflu
- déclare systématiquement tes variables : Dim i As Byte
Ta macro devient donc :
Sub Test() Dim Ligne As Byte Dim Colonne As Byte Colonne = 3 For Ligne = 1 To 200 If Cells(Ligne, Colonne) = "oui" Then Cells(Ligne, Colonne + 2) = "super" End If Next Ligne End Sub
Un tuto sur les variables...