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