Choix de cellule pour résultat macro

Bonsoir à tous,

J'ai deux problèmes (et donc 2 questions) que je n'arrive pas à résoudre dans une de mes macros.

Voici le petit bout de code qui me pose problème :

Worksheets("Feuil2").Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(UBound(sp) + 1) = Application.Transpose(sp)

Normalement en modifiant le chiffre dans la partie " Cells(Rows.Count, 1) " je devrais logiquement en exécutant la macro voir le premier de mes résultats apparaître sur la feuille 2 en cellule A2. Jusque là pas de soucis ça marche.

Cependant en mettant 2 a la place du 1 théoriquement (si j'ai bien compris), mon premier résultat devrait apparaître en cellule A3, or il apparaît en cellule B2…. Cela modifie la colonne et non la ligne.

J'ai essayé une alternative en modifiant " Cells(Rows.Count, 1) ", par " Cells(Columns.Count, 1) ". Même souci, en mettant 2 a la place de 1, mon premier résultat apparaît toujours en cellule B2 (modification comme précédemment de la colonne et non de la ligne).

Ce que je souhaiterais et que je n'ai pas trouvé, c'est pouvoir moduler l'apparition de mon premier résultat dans la cellule que je souhaite. (Par exemple en E5 ou A28…..)

Pour répondre a ma question j'ai tenté sans succès cette substitution : " Cells ("1, 1") " qui m'aurait normalement permis de répondre a mes attentes, mais en vain….

Mes deux questions sont :

Qu'elle est le souci dans ce bout de code qui me permet uniquement de changer de colonne et non de ligne ?

Qu'elle est la solution qu me permettrait de moduler à ma guise l'apparition de mon premier résultat ?

Je précise que je suis novice en VBA mais j'essaie de comprendre.

Je vous remercie d'avance pour votre aide et aussi vos éclaircissements.

Bonsoir,

bagheera a écrit :

Je précise que je suis novice en VBA mais j'essaie de comprendre.

J'aurais aimé pouvoir utiliser ce genre d'instruction lorsque j'ai commencé le VBA..

A quoi correspond le Sp ?

Peut être ceci :

Worksheets("Feuil2").Cells(Worksheets("Feuil2").Rows.Count, 1).End(xlUp).Offset(1)= Application.Transpose(sp)

Crdlt

Bonsoir Dan,

Merci pour ta solution mais j'ai toujours le même problème...

C'est une macro que j'ai modifié mais je n'en suis pas l'auteur (ce n'est pas une de mes macros contrairement a ce que j'ai écrit plus haut).

Voici le code complet afin peut être de mieux cerner le problème.

Ce code permet de faire des concatenations entre 2, 3, 4, 5 et 6 colonnes de données dont les résultats apparaissent sur une autre autre feuille.

Sub tst()
    Worksheets("Data Base").Cells.UnMerge
    M_snb_002 Worksheets("Data Base").Cells(3, 1)
    M_snb_002 Worksheets("Data Base").Cells(3, 6)

End Sub

Sub M_snb_002(c00)
    sn = c00.CurrentRegion

    For j = 1 To UBound(sn)
      If sn(j, 1) <> "" Then
        For jj = 1 To UBound(sn)
            If sn(jj, 2) <> "" Then
               If UBound(sn, 2) = 2 Then
                     c01 = c01 & vbLf & sn(j, 1) & "_" & sn(jj, 2)
               Else
                   For jjj = 1 To UBound(sn)
                      If sn(jjj, 3) <> "" Then
                         If UBound(sn, 2) = 3 Then
                              c01 = c01 & vbLf & sn(j, 1) & "_" & sn(jj, 2) & "_" & sn(jjj, 3)
                         Else
                             For jjjj = 1 To UBound(sn)
                               If sn(jjjj, 4) <> "" Then
                                  If UBound(sn, 2) = 4 Then
                                        c01 = c01 & vbLf & sn(j, 1) & "_" & sn(jj, 2) & "_" & sn(jjj, 3) & "_" & sn(jjjj, 4)
                                  Else
                                      For jjjjj = 1 To UBound(sn)
                                        If sn(jjjjj, 5) <> "" Then
                                           If UBound(sn, 2) = 5 Then
                                                  c01 = c01 & vbLf & sn(j, 1) & "_" & sn(jj, 2) & "_" & sn(jjj, 3) & "_" & sn(jjjj, 4) & "_" & sn(jjjjj, 5)
                                           Else
                                               For jjjjjj = 1 To UBound(sn)
                                                 If sn(jjjjjj, 6) <> "" Then
                                                            c01 = c01 & vbLf & sn(j, 1) & "_" & sn(jj, 2) & "_" & sn(jjj, 3) & "_" & sn(jjjj, 4) & "_" & sn(jjjjj, 5) & "_" & sn(jjjjjj, 6)
                                                 End If
                                               Next
                                           End If
                                        End If
                                      Next
                                  End If
                               End If
                             Next
                         End If
                      End If
                   Next
                End If
            End If
        Next
      End If
    Next

    sp = Split(Mid(c01, 2), vbLf)

    Worksheets("Feuil2").Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(UBound(sp) + 1) = Application.Transpose(sp)
End Sub
Rechercher des sujets similaires à "choix resultat macro"