Alors voilà, ce petit bout de code permet de faire un tirage dans une liste,
après avoir entré le nombre de personne à tirer, le traitement se fait
correctement mais à un moment un copier-collé doit être effecuté pour
récupérer des valeurs, à la ligne
"Range("Q1:Q150").Select", il m'affiche erreur 1004 "erreur définie par
l'application ou par l'objet! Ce qui est étonnant, c'est avec une maccro la
copie s'effectue sans problème!
Voici le code :
Private Sub CommandButton1_Click()
Dim nbr_sel1, nbr_elm, nbr_col, choix, pos, lig, i
Dim inf_feu, inf_lig, inf_col
Dim res_feu, res_lig, res_col, res_lis
nbr1 = InputBox("Veuillez saisir le nombre de personne à choisir", "Saisie",
"0")
nbr_sel1 = nbr1 ' le nombre de lignes à réviser
nbr_col = 16 ' le nombre de colonnes à recopier
inf_lig = 1 ' les données sont en ligne inf_lig
inf_col = 1 ' les données sont en colonne inf_col
inf_feu = "bourg" ' les données sont sur la feuille inf_feu
res_lig = 1 ' le résultat est en ligne res_lig
res_col = 1 ' le résultat est en colonne res_col
res_feu = "resubourg" ' le résultat est sur la feuille res_feu
res_lis = "listebourg" ' liste remise en forme
' récupération du nombre de lignes de données
nbr_elm = Worksheets(inf_feu).Cells(inf_lig, inf_col).End(xlDown).Rows
' suppression précédente sélection
Sheets(res_feu).Select
Worksheets(res_feu).Cells(res_lig, res_col).CurrentRegion.ClearContents
For lig = 0 To nbr_sel1 - 1
Do
choix = Int(Rnd(1) * nbr_elm) + 1
For i = 0 To lig ' test doubles
If Worksheets(res_feu).Cells(res_lig, res_col).Offset(i).Value _
= Worksheets(inf_feu).Cells(inf_lig, inf_col).Offset(choix - 1).Value _
Then
Exit For
End If
Next i
Loop Until Worksheets(res_feu).Cells(res_lig, res_col).Offset(i).Value = ""
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
PMO
Bonjour,
A tout hasard essayez la ligne suivante: Sheets(4). Range("Q1:Q150").Select au lieu de Range("Q1:Q150").Select
Cordialement. -- PMO Patrick Morange
Bonjour à tous alors voici mon problème :
Alors voilà, ce petit bout de code permet de faire un tirage dans une liste, après avoir entré le nombre de personne à tirer, le traitement se fait correctement mais à un moment un copier-collé doit être effecuté pour récupérer des valeurs, à la ligne "Range("Q1:Q150").Select", il m'affiche erreur 1004 "erreur définie par l'application ou par l'objet! Ce qui est étonnant, c'est avec une maccro la copie s'effectue sans problème!
Voici le code :
Private Sub CommandButton1_Click() Dim nbr_sel1, nbr_elm, nbr_col, choix, pos, lig, i Dim inf_feu, inf_lig, inf_col Dim res_feu, res_lig, res_col, res_lis nbr1 = InputBox("Veuillez saisir le nombre de personne à choisir", "Saisie", "0") nbr_sel1 = nbr1 ' le nombre de lignes à réviser nbr_col = 16 ' le nombre de colonnes à recopier inf_lig = 1 ' les données sont en ligne inf_lig inf_col = 1 ' les données sont en colonne inf_col inf_feu = "bourg" ' les données sont sur la feuille inf_feu res_lig = 1 ' le résultat est en ligne res_lig res_col = 1 ' le résultat est en colonne res_col res_feu = "resubourg" ' le résultat est sur la feuille res_feu res_lis = "listebourg" ' liste remise en forme ' récupération du nombre de lignes de données nbr_elm = Worksheets(inf_feu).Cells(inf_lig, inf_col).End(xlDown).Rows ' suppression précédente sélection Sheets(res_feu).Select Worksheets(res_feu).Cells(res_lig, res_col).CurrentRegion.ClearContents
For lig = 0 To nbr_sel1 - 1 Do choix = Int(Rnd(1) * nbr_elm) + 1 For i = 0 To lig ' test doubles If Worksheets(res_feu).Cells(res_lig, res_col).Offset(i).Value _ = Worksheets(inf_feu).Cells(inf_lig, inf_col).Offset(choix - 1).Value _ Then Exit For End If Next i Loop Until Worksheets(res_feu).Cells(res_lig, res_col).Offset(i).Value = ""
A tout hasard essayez la ligne suivante:
Sheets(4). Range("Q1:Q150").Select
au lieu de
Range("Q1:Q150").Select
Cordialement.
--
PMO
Patrick Morange
Bonjour à tous alors voici mon problème :
Alors voilà, ce petit bout de code permet de faire un tirage dans une liste,
après avoir entré le nombre de personne à tirer, le traitement se fait
correctement mais à un moment un copier-collé doit être effecuté pour
récupérer des valeurs, à la ligne
"Range("Q1:Q150").Select", il m'affiche erreur 1004 "erreur définie par
l'application ou par l'objet! Ce qui est étonnant, c'est avec une maccro la
copie s'effectue sans problème!
Voici le code :
Private Sub CommandButton1_Click()
Dim nbr_sel1, nbr_elm, nbr_col, choix, pos, lig, i
Dim inf_feu, inf_lig, inf_col
Dim res_feu, res_lig, res_col, res_lis
nbr1 = InputBox("Veuillez saisir le nombre de personne à choisir", "Saisie",
"0")
nbr_sel1 = nbr1 ' le nombre de lignes à réviser
nbr_col = 16 ' le nombre de colonnes à recopier
inf_lig = 1 ' les données sont en ligne inf_lig
inf_col = 1 ' les données sont en colonne inf_col
inf_feu = "bourg" ' les données sont sur la feuille inf_feu
res_lig = 1 ' le résultat est en ligne res_lig
res_col = 1 ' le résultat est en colonne res_col
res_feu = "resubourg" ' le résultat est sur la feuille res_feu
res_lis = "listebourg" ' liste remise en forme
' récupération du nombre de lignes de données
nbr_elm = Worksheets(inf_feu).Cells(inf_lig, inf_col).End(xlDown).Rows
' suppression précédente sélection
Sheets(res_feu).Select
Worksheets(res_feu).Cells(res_lig, res_col).CurrentRegion.ClearContents
For lig = 0 To nbr_sel1 - 1
Do
choix = Int(Rnd(1) * nbr_elm) + 1
For i = 0 To lig ' test doubles
If Worksheets(res_feu).Cells(res_lig, res_col).Offset(i).Value _
= Worksheets(inf_feu).Cells(inf_lig, inf_col).Offset(choix - 1).Value _
Then
Exit For
End If
Next i
Loop Until Worksheets(res_feu).Cells(res_lig, res_col).Offset(i).Value = ""
A tout hasard essayez la ligne suivante: Sheets(4). Range("Q1:Q150").Select au lieu de Range("Q1:Q150").Select
Cordialement. -- PMO Patrick Morange
Bonjour à tous alors voici mon problème :
Alors voilà, ce petit bout de code permet de faire un tirage dans une liste, après avoir entré le nombre de personne à tirer, le traitement se fait correctement mais à un moment un copier-collé doit être effecuté pour récupérer des valeurs, à la ligne "Range("Q1:Q150").Select", il m'affiche erreur 1004 "erreur définie par l'application ou par l'objet! Ce qui est étonnant, c'est avec une maccro la copie s'effectue sans problème!
Voici le code :
Private Sub CommandButton1_Click() Dim nbr_sel1, nbr_elm, nbr_col, choix, pos, lig, i Dim inf_feu, inf_lig, inf_col Dim res_feu, res_lig, res_col, res_lis nbr1 = InputBox("Veuillez saisir le nombre de personne à choisir", "Saisie", "0") nbr_sel1 = nbr1 ' le nombre de lignes à réviser nbr_col = 16 ' le nombre de colonnes à recopier inf_lig = 1 ' les données sont en ligne inf_lig inf_col = 1 ' les données sont en colonne inf_col inf_feu = "bourg" ' les données sont sur la feuille inf_feu res_lig = 1 ' le résultat est en ligne res_lig res_col = 1 ' le résultat est en colonne res_col res_feu = "resubourg" ' le résultat est sur la feuille res_feu res_lis = "listebourg" ' liste remise en forme ' récupération du nombre de lignes de données nbr_elm = Worksheets(inf_feu).Cells(inf_lig, inf_col).End(xlDown).Rows ' suppression précédente sélection Sheets(res_feu).Select Worksheets(res_feu).Cells(res_lig, res_col).CurrentRegion.ClearContents
For lig = 0 To nbr_sel1 - 1 Do choix = Int(Rnd(1) * nbr_elm) + 1 For i = 0 To lig ' test doubles If Worksheets(res_feu).Cells(res_lig, res_col).Offset(i).Value _ = Worksheets(inf_feu).Cells(inf_lig, inf_col).Offset(choix - 1).Value _ Then Exit For End If Next i Loop Until Worksheets(res_feu).Cells(res_lig, res_col).Offset(i).Value = ""