Autres Créer tableau automatique et séparation de texte

Moran

XLDnaute Nouveau
Bonjour à tous,

J'aurais besoin de votre aide.

Je souhaiterais que le tableau présent dans l'onglet "Form Submissions" se modifie automatiquement pour obtenir le tableau de l'onglet "Résultat".

Je suis désolé de vous demander ça de cette manière, mais je ne sois pas comment l'expliquer simplement...

E vous remerciant !
 

Pièces jointes

  • TEST.xls
    24.5 KB · Affichages: 12

fanfan38

XLDnaute Barbatruc
J'ai d'abord converti to fichier en tableau structuré...
VB:
Sub Transfert()
  Dim i As Long, sh As Worksheet, j As Byte, mavar, n As Long, var1 'déclaration des variables
  Set sh = Sheets("Résultat") affectation de la feuille Résultat à la variable sh
  For i = 2 To Range("A" & Rows.Count).End(xlUp).Row 'boucle de la ligne 2 à la dernière ligne
    If [T_resultat].Item(1, 1) <> "" Then n = [T_resultat].Rows.Count + 1 Else n = 1 'affectation d'une nouvelle ligne
    For j = 1 To 9 'boucle sur les colonnes 1 à 9
      [T_resultat].Item(n, j) = Cells(i, j).Value'nc'est la ligne, j c'est la colonne, i c'est la ligne de la feuille "form...."
      [T_resultat].Item(n + 1, j) = Cells(i, j).Value
    Next 'fin de la boucle
    var1 = Split(Cells(i, 10).Value, ",") split coupe la cellule en fonction du délimiteur (ici la ,)
'résultat dans var1(0) et var1(1)
    mavar = Split(var1(0), "-")                       'ici le délimiteur est le moins- soit 3 résultats
      [T_resultat].Item(n, 10) = mavar(0)
      [T_resultat].Item(n, 11) = mavar(1)
      [T_resultat].Item(n, 12) = mavar(2)
      [T_resultat].Item(n, 13) = Cells(i, 10)
    mavar = Split(var1(1), "-") 'idem
      [T_resultat].Item(n + 1, 10) = mavar(0)
      [T_resultat].Item(n + 1, 11) = mavar(1)
      [T_resultat].Item(n + 1, 12) = mavar(2)
      [T_resultat].Item(n + 1, 13) = Cells(i, 10)
      For j = 11 To 29                    'boucle sur les colonnes 11 à 29
        If j = 23 Then            'si colonne 23 texte devient numérique
         [T_resultat].Item(n, j + 3) = Val(Cells(i, j).Value)
         [T_resultat].Item(n + 1, j + 3) = Val(Cells(i, j).Value)
        Else
         [T_resultat].Item(n, j + 3) = Cells(i, j).Value
         [T_resultat].Item(n + 1, j + 3) = Cells(i, j).Value
       End If
      Next
  Next
End Sub
A+ François
 

Moran

XLDnaute Nouveau
Bonjour à tous,
J'ai un problème avec le fichier.
Lorsque je fais le transfert, toutes les infos de la colonne J ne se retrouvent pas dans l'onglet résultat et tout se s'arrête à la ligne 6 du 1er onglet.
J'ai chercher comment résoudre le problème, mais en vain.
Pourriez-vous m'aider ?
Merci !
 

Pièces jointes

  • FICHIER TEST.xlsm
    28.6 KB · Affichages: 1

Moran

XLDnaute Nouveau
Merci beaucoup !
Par contre, j'ai un problème : je ne peut pas utilisé le fichier, car "Microsoft a bloqué l'exécution des macros, car la source de ce fichier n'est pas approuvée."
J'autorise pourtant les macros, je ne vois pas d'où peut venir ce problème.
 

fanfan38

XLDnaute Barbatruc

Modifier les paramètres de sécurité des macros dans Excel

Découvrez entre autres comment modifier les paramètres qui activent ou désactivent les macros dans Excel. Vous pouvez modifier les paramètres de sécurité des macros pour contrôler l’exécution des macros à l’ouverture d’un classeur.
support.microsoft.com
support.microsoft.com
A+ François
Ou ouvre un autre fichier
copie la macro sur la feuille adéquat (onglet/visualiser le code)
A+ François
ce qui est bizarre c'est que ça marché la première fois...
 

Discussions similaires

Statistiques des forums

Discussions
312 305
Messages
2 087 087
Membres
103 461
dernier inscrit
dams94