Renvoyer une partie du contenu d'une cellule vers une autre en VBA

Guthurhall

XLDnaute Nouveau
Bonjour,

J'ai un tableau sur 2 feuilles. La première feuille contient dans la première colonne des chaines de caracteres et je souhaite renvoyer dans la premiere colonne de la deuxieme feuille une partie de la chaine de caractere.

J'ai écrit ce code mais il doit me manque des éléments pour que ça fonctionne (je débutte en VBA). Aussi, je sollicite votre aide !!!

Merci d'avance !!

Sub Sélect_carac()

Dim ind As Integer
Dim celluleorig As String
Dim LaFeuille1 As Worksheet
Dim LaFeuille2 As Worksheet
Dim cellulebut As String

Set LaFeuille1 = ThisWorkbook.Worksheets("Feuil1")
Set LaFeuille2 = ThisWorkbook.Worksheets("Feuil2")

ind = 1
While ind < 30000

celluleorig = LaFeuille1.Range("a" & ind).Select
cellulebut = Mid(celluleorig, 16, 5)


ind = ind + 1
Wend


End Sub
 

Paritec

XLDnaute Barbatruc
Re : Renvoyer une partie du contenu d'une cellule vers une autre en VBA

bonjour Guthurhall le forum
oui il manque même l'essentiel,
tu en fais quoi de cellulebut = Mid(celluleorig, 16, 5)
si tu ne le recolles pas quelque part tu n'auras jamais ton résultat, je suppose en feuil2 ?
LaFeuille2.Range("a" & ind)=
cellulebut
a+
papou :)
 
Dernière édition:

Guthurhall

XLDnaute Nouveau
Re : Renvoyer une partie du contenu d'une cellule vers une autre en VBA

Ca y est, ça fonctionne !

Merci beaucoup Paritec.

Pour ceux que ça interesse, voici le code :

Sub Sélect_carac()

Dim ind As Integer
Dim celluleorig As String
Dim LaFeuille1 As Worksheet
Dim LaFeuille2 As Worksheet
Dim cellulebut As String

Set LaFeuille1 = ThisWorkbook.Worksheets("Feuil1")
Set LaFeuille2 = ThisWorkbook.Worksheets("Feuil2")

ind = 1
While ind < 30000

celluleorig = LaFeuille1.Range("a" & ind)
LaFeuille2.Range("a" & ind) = cellulebut
cellulebut = Mid(celluleorig, 17, 5)


ind = ind + 1
Wend


End Sub
 

Efgé

XLDnaute Barbatruc
Re : Renvoyer une partie du contenu d'une cellule vers une autre en VBA

Bonjour Guthurhall, Paritec :)
Trop tard mais comme l'ai fait...
Code:
Sub Sélect_carac()
For i = 1 To Sheets("Feuil1").Range("A" & Application.Rows.Count).End(xlUp).Row
    j = Sheets("Feuil2").Range("A" & Application.Rows.Count).End(xlUp).Row + 1
    Sheets("Feuil2").Cells(j, 1) = Mid(Sheets("Feuil1").Cells(i, 1), 16, 5)
Next i
End Sub
Cordialement
 

ROGER2327

XLDnaute Barbatruc
Re : Renvoyer une partie du contenu d'une cellule vers une autre en VBA

Bonjour à tous
Sur la base du code proposé :
Code:
[COLOR="DarkSlateGray"][B]Sub Sélect_carac()
Dim ind As Integer
Dim LaFeuille1 As Worksheet
Dim LaFeuille2 As Worksheet
   Set LaFeuille1 = ThisWorkbook.Worksheets("Feuil1")
   Set LaFeuille2 = ThisWorkbook.Worksheets("Feuil2")
   ind = 0 [COLOR="Green"]'Facultatif[/COLOR]
   While ind < 29999
      LaFeuille2.Cells(1, 1).Offset(ind, 0).Value = Mid$(LaFeuille1.Cells(1, 1).Offset(ind, 0).Value, 16, 5)
      ind = ind + 1
   Wend
End Sub[/B][/COLOR]
Mais le code de Efgé me semble préférable.​
ROGER2327
#3804


Dimanche 15 Gidouille 137 (Sainte Giborgne, vénérable, ST)
11 Messidor An CCXVIII
2010-W26-2T12:24:35Z
 

Paritec

XLDnaute Barbatruc
Re : Renvoyer une partie du contenu d'une cellule vers une autre en VBA

Salut Efgé :) Guthurhall,
sauf Guthurhall que moi je l'aurais mis deux lignes en dessous, car là tu vas avoir un décalage de 1 ligne !!!!!
a+
papou :)

Code:
celluleorig = LaFeuille1.Range("a" & ind)
cellulebut = Mid(celluleorig, 17, 5)
[COLOR=Red]LaFeuille2.Range("a" & ind) = cellulebut[/COLOR]

EDIT : Bonjour Roger
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof