XL 2010 définir plage pour saisie de données

GHISLAIN

XLDnaute Impliqué
Bonjour les exceliens, nes..............

Voila j'utilise ce code pour rentrer des noms sans doublons qui fonctionne du tonnerre . Merci a son créateur

nom = "toto"
If nom = "" Then Exit Sub

msg = MsgBox("Voulez-Vous Ajouter : " & nom, vbYesNo, "AVERTISSEMENT")
If msg = 6 Then
L = ActiveSheet.Range("a12", "a19").End(xlUp).Row + 1
ActiveSheet.Range("a" & L).Value = nom


For i = Range("a65536").End(xlUp).Row + 1 To 2 Step -1
If Range("a" & i) = Range("a" & i - 1) Then
MsgBox "Doublon Détecté et Détruit : " & Range("a" & i - 1).Value, vbCritical, "AVERTISSEMENT"



Range("a" & i).Clear

End If

Next
On Error Resume Next

End If


Issue de ce code je ne parvient pas a définir la plage concernée . Effectivement , je souhaite ecrire les données a partir de la ligne 12 jusqu’à la ligne 19.
Et ensuite utiliser ce code sur des plages mais différentes c'est a dire pouvoir écrire sur la plage A12 a A19 et une fois pleine passer a la plage A24 a A32

merci a tous de vos suggestions et idées

Bien Amicalement
GHISLAIN
 

Lone-wolf

XLDnaute Barbatruc
Bonsoir GHISLAIN

Je ne sais pas si j'ai bien compris, un essai avec:

VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim lig As Long
lig = Range("a" & Rows.Count).End(xlUp).Row + 1
Range("a" & lig) = "x"
If lig = 19 Or lig = 24 Or lig = 29 Then lig = lig + 5: Range("a" & lig) = "x"
Cancel = True
End Sub
 

GHISLAIN

XLDnaute Impliqué
Bonsoir Lone-wolf
Merci de passer sur mon fil
ta proposition répond presque a ma demande .
Les X commence a la ligne 2 alors que je souhaiterais qu'il commence a s'écrire a partir de la ligne 12 et se termine a ligne 19
et pour le second qu'il s’écrivent a partir de la ligne 24 jusqu’à 31
Arrivé a la ligne 31 fin de l’Écriture du X
merci de ton aide

Ghislain
 

Lone-wolf

XLDnaute Barbatruc
Si il n'y a rien écrit dans la colonne, dans la cellulle 11 tu met ceci par exemple -----------, couleur du texte blanc. Là tu reteste cette macro.

VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim lig As Long
  lig = Range("a" & Rows.Count).End(xlUp).Row + 1
  If lig = 33 Then: MsgBox "Fin de la saisie", , "GHISLAIN": End: Range("a33:a1000").ClearContents
  Range("a" & lig) = "x"
  If lig = 19 Or lig = 24 Then lig = lig + 5: Range("a" & lig) = "x"
  Cancel = True
End Sub
 
Dernière édition:

GHISLAIN

XLDnaute Impliqué
je viens de l’intégrer dans mon fichier mais cela ne fonctionne pas , surement du a la structure de mes tableaux (non modifiable)
Ci joint une extraction de mes tableaux et des deux codes sur userform

merci
 

Pièces jointes

  • Classeur1.xlsm
    30 KB · Affichages: 46

Lone-wolf

XLDnaute Barbatruc
Bonjour Gislain

J'ai trouvé ceci sur le net et adapté à ton cas.

VB:
Private Sub CommandButton1_Click()
Dim lig As Long, mga As Variant, s
lig = 10
With Feuil1
Do Until .Cells(lig, 1) = ""
  If .Cells(lig, 1).MergeCells Then
    Set mga = .Cells(lig, 1).MergeArea
    s = mga.Address
    lig = Mid$(s, InStrRev(s, "$") + 1)
       .Cells(lig, 1) = "x"
  End If
    lig = lig + 1
      If lig = 20 Then lig = lig + 4
      If lig = 31 Then Unload Me
Loop
.Cells(lig, 1) = "x"
End With
End Sub
 

Discussions similaires

Réponses
4
Affichages
231
Réponses
2
Affichages
293
Réponses
7
Affichages
390

Statistiques des forums

Discussions
312 413
Messages
2 088 200
Membres
103 766
dernier inscrit
mahieux