Bonjour,
Je vais te donner les indications essentielles, mais te laisser t'y mettre, s'agissant d'une "difficulté" dont la solution est à la portée du développeur (et tu viens sur ce site en qualité de développeur) le plus débutant de chez débutant en VBA :
- une variable numérique "globale" pour définir la colonne en cours, que tu incrémentes de une unité lorsque la dernière ligne de la colonne en cours contient quelque chose
Et si tu veux sauter n colonnes au lieu d'une seule, tu incrémentes toto de n et non de 1
soit toto cette variable
- une variable numérique globale titi initialisée à 1, qui est le rang dans la colonne (et donc la ligne) que tu incrémentes de 1 unité à chaque donnée importée et que tu remets à 1 lorsque tu as rempli la dernière ligne d'une colonne
- la dernière ligne de la colonne toto est remplie si
Cells(Rows.Count, toto).value <> ""
(qui revient à dire : si titi = rows.count, donc).
et tu remplis toujours Cells(titi, toto)
Vraiment trop simple ... et en aucune manière différent de ce que tu ferais dans la vie courante, hors informatique (avec par exemple des étagères en rayonnage !)
Allez, va ...
Regarde ce que ferait ceci, par exemple :
Private toto As Integer, titi As Long
Private Sub CommandButton3_Click()
limite = 10
For i = 1 To 100
If toto = 0 Then toto = 1
If titi = 0 Then titi = 1
Cells(titi, toto) = "allons !"
titi = titi + 1
If titi > limite Then toto = toto + 1: titi = 1
Next
End Sub
Par quoi dois-tu, selon toi, remplacer 10 dans limite = 10 pour que cela change de colonne non arrivé à la ligne 10, mais arrivé à la dernière possible ? (je te l'ai dit plus haut)...
________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.