Resize qui resize mal
Résolu
GermPeru
Messages postés
175
Statut
Membre
-
GermPeru Messages postés 175 Statut Membre -
GermPeru Messages postés 175 Statut Membre -
Bonjour a tous,
J´importe les données d´une table je les retravailles au travers d´une interface, je les stock dans un array et je les retranspose dans une autre table.
Au moment ou je les exporte dans ma deuxieme tables, les données se trouvent décalées d´une colone, cad non pas en colone A mais en B, voici ce que j´ai essayé et rien n´y fait j´ai toujours mes données dans ma colone B:
De plus a mon resize je lui rajoute une colone, j´ai déterminé ceci de facon empirique, mais je n´ai pas compris pourquoi. Je me suis dis que peut etre pcq j´utilise un array tbmmp() commence par 1, et que j´ai pas spécifié l' ordre base, mais dans ce cas cela vaudrait pour mes lignes...
Bref si quelqu´un m´a compris et domine les arrays() avec les resize et m´a compris, je le remercie d´avance pour l´aide car plus d´idée.
Merci
J´importe les données d´une table je les retravailles au travers d´une interface, je les stock dans un array et je les retranspose dans une autre table.
Au moment ou je les exporte dans ma deuxieme tables, les données se trouvent décalées d´une colone, cad non pas en colone A mais en B, voici ce que j´ai essayé et rien n´y fait j´ai toujours mes données dans ma colone B:
.Range("A" & NbLi + 1).Resize(UBound(TBMMP, 1), UBound(TBMMP, 2) + 1) = TBMMP
.cells(nbli+1,1).Resize(UBound(TBMMP, 1), UBound(TBMMP, 2) + 1) = TBMMP
.Range("A" & NbLi + 1).offset(0,-1).Resize(UBound(TBMMP, 1), UBound(TBMMP, 2) + 1) = TBMMP 'ceci ne fonctionne pas
De plus a mon resize je lui rajoute une colone, j´ai déterminé ceci de facon empirique, mais je n´ai pas compris pourquoi. Je me suis dis que peut etre pcq j´utilise un array tbmmp() commence par 1, et que j´ai pas spécifié l' ordre base, mais dans ce cas cela vaudrait pour mes lignes...
Bref si quelqu´un m´a compris et domine les arrays() avec les resize et m´a compris, je le remercie d´avance pour l´aide car plus d´idée.
Merci
A voir également:
- Resize qui resize mal
- Photo resize magic - Télécharger - Divers Photo & Graphisme
- Resize - Télécharger - Divers Photo & Graphisme
- Free image convert and resize - Télécharger - Photo & Graphisme
- Pourquoi la tnt fonctionne mal en ce moment - Guide
- Resize pdf - Télécharger - PDF
2 réponses
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
bonsoir, si pas encore fait, je suggère d'ajouter
option expliciten première ligne de ton module.
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
quel est le contenu de la dernière colonne dans ta table de destination?
je pense que les données sont décalées d'une colonne dans TBMMP, ce n'est pas l'exportation qui pose problème, c'est soit l'importation, soit les manipulations de données.
je pense que les données sont décalées d'une colonne dans TBMMP, ce n'est pas l'exportation qui pose problème, c'est soit l'importation, soit les manipulations de données.
Ca l´air de fonctionner mais ....
J' ai un autre pb maintenant cela me deconfigure cette fonction dont je ne suis pas l´auteur, ce qui fait que je ne vois pas ou est l´erreur ci ce n´est qu´il m´enregistre 2 fois la premiere adresse trouvée et lors du colage TBMMP cela me supprime la derniere ligne de ma table de destination... et cela me la met en vide, est ce que tu vois comment arranger ceci?
Merci pour l´inspiration, ca m´aide fortement a progresser, car je ne voulais pas passer par une boucle et voulais vraiment comprendre ce resize avec un array...
Merci
Function RechTRUE(ByVal Plage As String, ByRef TBadress() As Variant) As Long
Dim Cherche, Ix As Long, PrAddress
Ix = 1
With Sheets("DatosMP").Range(Plage)
Set Cherche = .Find(True)
If Not Cherche Is Nothing Then
PrAddress = Cherche.Address
Do
ReDim Preserve TBadress(Ix)
TBadress(Ix) = Cherche.Address
Set Cherche = .FindNext(Cherche)
Ix = Ix + 1
Loop While Not Cherche Is Nothing And Cherche.Address <> PrAddress
End If
End With
RechTRUE = Ix
Set Cherche = Nothing
End Function
J' ai un autre pb maintenant cela me deconfigure cette fonction dont je ne suis pas l´auteur, ce qui fait que je ne vois pas ou est l´erreur ci ce n´est qu´il m´enregistre 2 fois la premiere adresse trouvée et lors du colage TBMMP cela me supprime la derniere ligne de ma table de destination... et cela me la met en vide, est ce que tu vois comment arranger ceci?
Merci pour l´inspiration, ca m´aide fortement a progresser, car je ne voulais pas passer par une boucle et voulais vraiment comprendre ce resize avec un array...
Merci
Option Explicit
Option Base 1
Private Sub CmdVal_Click()
Dim ili%, NbLi%, TBMMP()
Dim R#, TB()
With Sheets("DatosMP")
NbLi = Application.WorksheetFunction.CountA(.Range("A:A"))
R = RechTRUE("F2:F" & NbLi, TB())
ReDim TBMMP(1 To R, 7)
If R > 0 Then
For ili = 0 To UBound(TB)
TBMMP(ili + 1, 1) = .Cells(Range(TB(ili)).Row, 1) 'fecha
TBMMP(ili + 1, 2) = .Cells(Range(TB(ili)).Row, 2) 'hora
TBMMP(ili + 1, 3) = .Cells(Range(TB(ili)).Row, 3) 'usu
TBMMP(ili + 1, 4) = .Cells(Range(TB(ili)).Row, 4) 'tipo
TBMMP(ili + 1, 5) = .Cells(Range(TB(ili)).Row, 8) 'prod
TBMMP(ili + 1, 6) = .Cells(Range(TB(ili)).Row, 5) 'N° ana
TBMMP(ili + 1, 7) = .Cells(Range(TB(ili)).Row, 10) 'lote prov
Next ili
End If
.Range("TMMP").EntireRow.Delete
End With
With Sheets("MuestraM")
'.Unprotect "ppmdp"
NbLi = Application.WorksheetFunction.CountA(.Range("A:A"))
.Range("A" & NbLi + 1).Resize(UBound(TBMMP, 1), UBound(TBMMP, 2)) = TBMMP
'.Protect "ppmdp"
End With
Unload Me
End Sub
J´ai tout simplement passé ma fonction dans un module, mis option base 1 et changer ma boucle.
Merci pour l´inspiration yg_be ;)
Option Explicit Private Sub CmdVal_Click() Dim ili%, NbLi%, TBMMP() Dim R#, TB() With Sheets("DatosMP") NbLi = Application.WorksheetFunction.CountA(.Range("A:A")) R = RechTRUE("F2:F" & NbLi, TB()) ReDim TBMMP(1 To R, 7) If R > 0 Then For ili = 0 To UBound(TB) TBMMP(ili + 1, 1) = .Cells(Range(TB(ili)).Row, 1) 'fecha TBMMP(ili + 1, 2) = .Cells(Range(TB(ili)).Row, 2) 'hora TBMMP(ili + 1, 3) = .Cells(Range(TB(ili)).Row, 3) 'usu TBMMP(ili + 1, 4) = .Cells(Range(TB(ili)).Row, 4) 'tipo TBMMP(ili + 1, 5) = .Cells(Range(TB(ili)).Row, 8) 'prod TBMMP(ili + 1, 6) = .Cells(Range(TB(ili)).Row, 5) 'N° ana TBMMP(ili + 1, 7) = .Cells(Range(TB(ili)).Row, 10) 'lote prov Next ili End If .Range("TMMP").EntireRow.Delete End With With Sheets("MuestraM") '.Unprotect "ppmdp" NbLi = Application.WorksheetFunction.CountA(.Range("A:A")) .Range("A" & NbLi + 1).Resize(UBound(TBMMP, 1), UBound(TBMMP, 2) + 1) = TBMMP '.Protect "ppmdp" End With Unload Me End SubJ´ai progressé grace a vous, et le option explicit c´est la base maintenant ;)