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

inscrire les données dans les cellules

  • Initiateur de la discussion Initiateur de la discussion jad73
  • 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 !

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
 
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:
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+
 
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
 
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:
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

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

- 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

Discussions similaires

  • Question Question
Microsoft 365 Filtre Dynamique
Réponses
5
Affichages
253
Réponses
5
Affichages
701
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…