Changement automatique plages cellues

Justerini&Brooks

XLDnaute Nouveau
- Bonjour,

et oui encore moi.

Je voudrais, qu'après avoir rempli une plage de cellules, passer automatiquement sur une autre plage de cellules... et ainsi de suite à plusieurs reprises.
Je précise que les plages de cellules sont remplies à l'aide d'un UserForm Multiligne pour lequel tototiti2008 m'a déjà pas mal aidé.

Je joins un petit fichier pour vous aider à comprendre.

Merci d'avance,
 

Pièces jointes

  • TestTextBoxMultiligneCellules.xls
    38 KB · Affichages: 47
  • TestTextBoxMultiligneCellules.xls
    38 KB · Affichages: 46
  • TestTextBoxMultiligneCellules.xls
    38 KB · Affichages: 42

jp14

XLDnaute Barbatruc
Re : Changement automatique plages cellues

Bonjour

Pour répondre à la question posée il faut connaitre le mode de fonctionnement :
Si la saisie doit se faire dans la foulée il suffit de mémoriser la position.
Si la saisie se fait à des dates différentes il faut chercher la position vide, il faut dans ce dernier cas prévoir la suppression des données.

JP
 

Justerini&Brooks

XLDnaute Nouveau
Re : Changement automatique plages cellues

- Bonjour JP,
merci de t'intéresser à ma question.

La saisie se fait dans la foulée.
Je m'explique, j'améliore un petit programme de type facturier que j'ai fait, chaque facture se fait donc d'une traite sans pouvoir y revenir.

Maintenant il faut prévoir plusieurs saisies d'affilée suivant les choses à facturer.

Encore merci,
 

Justerini&Brooks

XLDnaute Nouveau
Re : Plusieurs plages cellules

- Bonjour,

je pense que mon sujet est mal présenté.

J'ai un TextBox multiligne dont chaque ligne est copiée dans des cellules différentes qui se suivent, soit de J7 à J17.
Comme mon TextBox multiligne peut faire plus de 20 lignes, j'aimerais que quand j'arrive à J17 la prochaine ligne de mon TextBox soit copiée dans J21 et quand j'arrive à J32, la ligne suivante de mon TextBox soit copiée dans J37 jusqu'à maximum J49.

Bien entendu ceci est un exemple que j'adapterai à mes besoins car j'aime aussi participer un peu... lol

Merci d'avance,
 

PMO2

XLDnaute Accro
Re : Changement automatique plages cellues

Bonjour,

A tout hasard (???), essayez avec votre code modifié

Code:
Dim R As Range
Dim NoMake As Boolean

Private Sub CommandButton1_Click()
Dim Tablo
If R Is Nothing Then Set R = Range("j18")
    ActiveSheet.Range(R.Address).End(xlUp).Offset(1, 0).Select
    Tablo = Split(UserForm1.TextBox1.Text, Chr(13) & Chr(10))
    For i = LBound(Tablo) To UBound(Tablo)
       ActiveSheet.Range(R.Address).End(xlUp).Offset(1, 0).Value = Tablo(i)
    Next i
       ActiveSheet.Range(R.Address).End(xlUp).Offset(0, 1).Value = TextBox2.Value
    End Sub

Private Sub CommandButton2_Click()
Dim lig&
NoMake = True
TextBox1.Text = ""
TextBox2.Text = ""
If Not R Is Nothing Then
  lig& = R.Row
  Select Case lig&
    Case 18
      Set R = Range("j33")
    Case 33
      Set R = Range("j50")
  End Select
End If
End Sub

Private Sub TextBox1_Change()
Dim Tablo, Pos As Long, Res As String
If NoMake Then
  NoMake = False
  Exit Sub
End If
    Tablo = Split(UserForm1.TextBox1.Text, Chr(13) & Chr(10))
    If Len(Tablo(UBound(Tablo))) > 10 Then
        Pos = InStrRev(Tablo(UBound(Tablo)), " ")
        If Pos > 0 Then
            Mid(Tablo(UBound(Tablo)), Pos, 1) = Chr(13) & Chr(10)
        End If
    End If
    Res = ""
    For i = LBound(Tablo) To UBound(Tablo)
        Res = Res & Tablo(i) & IIf(i < UBound(Tablo), Chr(13) & Chr(10), "")
    Next i
    UserForm1.TextBox1.Text = Res
End Sub

Cordialement.

PMO
Patrick Morange
 

jp14

XLDnaute Barbatruc
Re : Changement automatique plages cellues

Bonjour Justerini&Brooks
Bonjour PMO2
Avec une autre approche
Code:
Dim lig As Long
Private Sub CommandButton1_Click()
Dim Tablo
With Sheets(ActiveSheet.Name)
    Tablo = Split(UserForm1.TextBox1.Text, Chr(13) & Chr(10))
    For i = LBound(Tablo) To UBound(Tablo)
       .Range("J" & lig).Value = Tablo(i)
        nuligne
    Next i
    
       '.Range("J" & dl1).Offset(0, 1).Value = TextBox2.Value

End With
    End Sub

Private Sub nuligne()
lig = lig + 1
If lig = 18 Then
lig = 21
ElseIf lig = 33 Then
lig = 37
End If
End Sub

Private Sub UserForm_Initialize()
lig = 7
End Sub
Le numéro de ligne est mémorisé dans la procédure. Il est incrémenté à chaque écriture.

A tester

JP
 

Justerini&Brooks

XLDnaute Nouveau
Re : Changement automatique plages cellues

- Tout d'abord je m'excuse de répondre si tard mais il m'était impossible d'avoir accès au site, mon PC m'indiquait que le lien était corrompu et puis je suis parti en week-end.
Cà semble résolu et c'est tant mieux.
Je vous remercie de vous être penché sur mon problême, je vais analyser les solutions proposées.
Encore merci,
 

Discussions similaires

Statistiques des forums

Discussions
312 655
Messages
2 090 571
Membres
104 579
dernier inscrit
christelleduport@hotmail.