Changement automatique plages cellues

  • Initiateur de la discussion Initiateur de la discussion Justerini&Brooks
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

Justerini&Brooks

Guest
- 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

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
 
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,
 
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,
 
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
 
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
 
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,
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

B
Réponses
12
Affichages
2 K
B
Retour