Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

GHISLAIN

XLDnaute Impliqué
Re moi,

je crois avoir trouvé la solution :

ActiveSheet.Range("a2:a" & ActiveSheet.Range("a65000").End(xlUp).Row).Range("A18").End(xlUp).Offset(1, 0) = nom

Ça a l'air de fonctionner

Merci a toi

Bonne journée

Gislain
 

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
239
Réponses
2
Affichages
327
Réponses
7
Affichages
433
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…