inscrire les données dans les cellules

jad73

XLDnaute Occasionnel
bonjour le forum

J'ai une macro qui inscrit les données dans une seule cellule

"Cells(lin, col) = m & " " & n & " " & o & " " p & " " q"

j'aimerais qu'elles s'inscrivent dans une cellule sans que je sois obligé de passer par convertir chaque fois.
Comment faut-il modifier cette ligne.
merci
 

jad73

XLDnaute Occasionnel
Re : inscrire les données dans les cellules

bonjour Misange, le forum

excuse pour l'oubli du fichier
merci
 

Pièces jointes

  • combinaisons.xlsm
    192.6 KB · Affichages: 23
  • combinaisons.xlsm
    192.6 KB · Affichages: 26
  • combinaisons.xlsm
    192.6 KB · Affichages: 24

Staple1600

XLDnaute Barbatruc
Re : inscrire les données dans les cellules

Bonsoir à tous

jad73
Teste cette version modifiée de ta Macro1
Code:
Sub Macro1Bis()
Dim lin&, col&
lin = 1
col = 1
For m = 1 To 20
  For n = m + 1 To 20
    For o = n + 1 To 20
      For p = o + 1 To 20
        For q = p + 1 To 20
        Cells(lin, col) = m '& " " & n & " " & o & " " & p & " " & q
        Cells(lin, col + 1) = n
        Cells(lin, col + 2) = o
        Cells(lin, col + 3) = p
        Cells(lin, col + 4) = q
        lin = lin + 1
        If lin > 65500 Then
            col =6
            lin = 1
          End If
      Next q, p, o, n, m
End Sub
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : inscrire les données dans les cellules

Bonjour jad73,hello JM,

Bien vu JM le Next q, p, o, n, m

Et avec un Array c'est plus simple et plus rapide:

Code:
Sub Macro1Ter()
Dim lin&, col&
lin = 1
col = 1
For m = 1 To 20
  For n = m + 1 To 20
    For o = n + 1 To 20
      For p = o + 1 To 20
        For q = p + 1 To 20
          Cells(lin, col).Resize(, 5) = Array(m, n, o, p, q)
          lin = lin + 1
          If lin > 65500 Then
            col = 6
            lin = 1
          End If
        Next q, p, o, n, m
End Sub
A+
 

Staple1600

XLDnaute Barbatruc
Re : inscrire les données dans les cellules

Bonsoir job75 ;)

Une tite question en passant
Code:
Sub test()
Dim t: t = [{1,2,3}]
'ceci fonctionne
Range("A1:C1") = [{1,2,3}]
Rows(1).Clear
'idem avec cela
Cells(1, 1).Resize(, 3) = [{1,2,3}]

'Et pourtant ceci ne fonctionne dans le code précédent
'Cells(lin, col).Resize(, 5)= [{m, n, o, p, q}]
'Why ?
End Sub
 

job75

XLDnaute Barbatruc
Re : inscrire les données dans les cellules

Re JM,

Une matrice (écrite en dur) entre accolades ne doit pas contenir autre chose que des constantes.

Edit : c'est vrai sur Excel comme sur VBA.

Bonne nuit.
 
Dernière édition:

jad73

XLDnaute Occasionnel
Re : inscrire les données dans les cellules

Bonjour staple1600, job75, le forum

j'ai donc essayé vos codes qui fonctionnent bien quand il y a qu'un seul fichier(longueur combi 5 numéros 20) mais si je passe à des combi de 7 et 22 n° le 1er fichier de A a G s'inscrit bien mais après les autres se chevauchent en col H à N.
Effectivement la macro de job75 est un peu plus rapide.
Que faut-il modifier.
merci
 

Pièces jointes

  • macro combinaisons.xlsm
    23 KB · Affichages: 17

Staple1600

XLDnaute Barbatruc
Re : inscrire les données dans les cellules

Re


Merci Job75 pour l'info.

jab73
A vue de nez essaie cette modif
Code:
Sub Macro1Ter()
Dim lin&, col&
lin = 1
col = 1
For m = 1 To 20
  For n = m + 1 To 20
    For o = n + 1 To 20
      For p = o + 1 To 20
        For q = p + 1 To 20
          Cells(lin, col).Resize(, 5) = Array(m, n, o, p, q)
          lin = lin + 1
          If lin > 65500 Then
            col = col+5 'modif ici
            lin = 1
          End If
        Next q, p, o, n, m
End Sub
Essaie de modifier sur le même principe avec col+7 dans le cas de 7 et 22
 
Dernière édition:

jad73

XLDnaute Occasionnel
Re : inscrire les données dans les cellules

bonjour staple1600, job75, le forum

C'est parfait, j'ai rajouté1 de plus(6) et j'ai une colonne vide qui sépare les fichier, parfait merci.
Si je n'abuse pas de votre temps j'ai une macro qui supprime les doublons, elle fonctionne très bien lorsque les fichiers a comparer ont le même nombre de colonnes mais lorsque les fichier sont différents en colonnes j'ai 'erreur 1004'.
Le fichier A aura toujours 20 colonnes, le B pourra avoir entre 5 et 8 colonnes, j'ai essayé de le modifier mais sans résultat.
Si tu peux y jeter un œil merci d'avance.
A+
 

Pièces jointes

  • doublons.xlsm
    21.1 KB · Affichages: 22
  • doublons.xlsm
    21.1 KB · Affichages: 20
  • doublons.xlsm
    21.1 KB · Affichages: 19

Discussions similaires

Statistiques des forums

Discussions
312 164
Messages
2 085 869
Membres
103 007
dernier inscrit
salma_hayek