Bien le bonjour à tous et à toutes,
Nouvel adepte de l'utilisation d'Excel et de VBA (galère, galère) j'essai, sans succès, de résoudre le problème à première vu pas compliquer mais pour un novice c'est un calvaire.
Je m'explique:
J'ai une feuille comprenant 100 lignes et 15 colonnes. Dans le troisième colonne, j'ai généré des nombres aléatoires de 10000 à 99999 sur les 100 lignes. Dans le 15ème colonnes j'ai deux choix "OUI" ou "NON".
Lorsqu'il y a écrit "OUI" dans la 15ème colonne la macro "TransfertLigne", suite à son activation par Ctrl +a, supprimer ces lignes et les insert dans la feuille "Personnel Parti".
Voilà a peu près la base de mon programme que je vous met en pièce jointe j'ai enlever les macros car il prenait trop de place.
Macro 1
Sub Aleatoire()
Dim plage As Range, cel As Range, alea As Long
Set plage = Range("C2:C100")
plage.Value = ""
If plage.Count > 89999 Then Exit Sub
Randomize
For Each cel In plage
1 alea = 10000 + Int(89999 * Rnd)
If Application.CountIf(plage, alea) Then GoTo 1 Else cel = alea
Next
End Sub
Macro 2
Public Sub TransfertLigne()
Dim PlageUtile As Range
Dim Ligne As Range
Dim Origine As Worksheet
Dim Destination As Worksheet
Dim LigneDestination As Integer
Dim i As Long
Set Origine = Worksheets("Interne")
Set Destination = Worksheets("Personnel Parti")
Set PlageUtile = Range(Origine.Cells(1, 1), Origine.Cells(1, 1).SpecialCells(xlLastCell))
LigneDestination = 2
For Each Ligne In PlageUtile.Rows
If Not Ligne.Cells(1, 15).Value = "NON" And Ligne.Cells(1, 15).Value = " " Then
Sheets("Personnel Parti").Select
Rows("2:2").Select
Selection.Insert Shift:=xlDown
Ligne.Cut Destination.Cells(LigneDestination, 1)
End If
Next
Sheets("Interne").Select
For i = 10000 To 1 Step -1
If IsEmpty(Cells(i, 3).Value) Then Rows(i).Delete
Next i
End Sub
Maintenant j'essai tant bien que mal, de générer, suite à l'activation d'une nouvelle macro (pression d'un bouton, lancement d'une macro par Ctrl + lettre), un nombre aléatoire dans la première cellule vide de la colonne C. Bien sur, il faut que ce nombre n'ai pas de doublons dans la colonne C.
Voilà le coeur de mon problème, ça serait vraiment super que vous m'aidiez à trouvez la solution.
Merci à tous pour l'attention que vous portez à mon message
Bonne journée à tous et à toutes.
RCToxine
Nouvel adepte de l'utilisation d'Excel et de VBA (galère, galère) j'essai, sans succès, de résoudre le problème à première vu pas compliquer mais pour un novice c'est un calvaire.
Je m'explique:
J'ai une feuille comprenant 100 lignes et 15 colonnes. Dans le troisième colonne, j'ai généré des nombres aléatoires de 10000 à 99999 sur les 100 lignes. Dans le 15ème colonnes j'ai deux choix "OUI" ou "NON".
Lorsqu'il y a écrit "OUI" dans la 15ème colonne la macro "TransfertLigne", suite à son activation par Ctrl +a, supprimer ces lignes et les insert dans la feuille "Personnel Parti".
Voilà a peu près la base de mon programme que je vous met en pièce jointe j'ai enlever les macros car il prenait trop de place.
Macro 1
Sub Aleatoire()
Dim plage As Range, cel As Range, alea As Long
Set plage = Range("C2:C100")
plage.Value = ""
If plage.Count > 89999 Then Exit Sub
Randomize
For Each cel In plage
1 alea = 10000 + Int(89999 * Rnd)
If Application.CountIf(plage, alea) Then GoTo 1 Else cel = alea
Next
End Sub
Macro 2
Public Sub TransfertLigne()
Dim PlageUtile As Range
Dim Ligne As Range
Dim Origine As Worksheet
Dim Destination As Worksheet
Dim LigneDestination As Integer
Dim i As Long
Set Origine = Worksheets("Interne")
Set Destination = Worksheets("Personnel Parti")
Set PlageUtile = Range(Origine.Cells(1, 1), Origine.Cells(1, 1).SpecialCells(xlLastCell))
LigneDestination = 2
For Each Ligne In PlageUtile.Rows
If Not Ligne.Cells(1, 15).Value = "NON" And Ligne.Cells(1, 15).Value = " " Then
Sheets("Personnel Parti").Select
Rows("2:2").Select
Selection.Insert Shift:=xlDown
Ligne.Cut Destination.Cells(LigneDestination, 1)
End If
Next
Sheets("Interne").Select
For i = 10000 To 1 Step -1
If IsEmpty(Cells(i, 3).Value) Then Rows(i).Delete
Next i
End Sub
Maintenant j'essai tant bien que mal, de générer, suite à l'activation d'une nouvelle macro (pression d'un bouton, lancement d'une macro par Ctrl + lettre), un nombre aléatoire dans la première cellule vide de la colonne C. Bien sur, il faut que ce nombre n'ai pas de doublons dans la colonne C.
Voilà le coeur de mon problème, ça serait vraiment super que vous m'aidiez à trouvez la solution.
Merci à tous pour l'attention que vous portez à mon message
Bonne journée à tous et à toutes.
RCToxine
Pièces jointes
Dernière édition: