Cel vullen met VBA

Status
Niet open voor verdere reacties.

Edwin82

Gebruiker
Lid geworden
2 aug 2013
Berichten
16
Hallo,

Ik weet niet wat ik fout doe, maar onderstaande code werkt wel
Code:
Sheets("Data").Range("B1").Value").Value = CurrentData

Maar de volgende code niet

Code:
Sheets("Data").Range("Column&Row").Value = CurrentData

Column en Row zijn String


Wat ik eigelijk wil bereiken is dat workbook, worksheet, row en column op geef en dat wordt er een specifieke cel in een blad van een excel document gevuld met een waarde die ik opgeef.

Ik zoek al de hele middag en kan niets vinden op het internet, -of ik begrijp niet wat er staat.

Heeft iemand een idee?


Gr,

Edwin
 
Laatst bewerkt:
Zo zou het wel moeten werken, maar zet geen range-eigenschappen om in variabelen (daar krijg je geheid problemen mee in codes).
Maak er bv: strCol en strRow van.
Code:
Sheets("Data").Range(Column & Row).Value = CurrentData
 
Helaas doet hij niet wat ik verwachten


Fout 1004 tijdens uitvoering
Door toepassing of door object gedefineerde fout


Ik heb gedaan wat je zie StrCol en StrRow, bij zijn gedefineerd als String

Heb ik nog wat gemist?

Groeten,

Edwin
 
Ik denk dat ik iets mis.

Je volledige code misschien?
Hier dan maar een voorbeeldje van mij.
Code:
Sub hsv()
Dim strCol As String, strRow As String, currentData As Long
 strCol = "A"
 strRow = "15" 'of strRow as Long = 15, zonder dubbele aanhalingstekens.
 currentData = 10
Sheets("Data").Range(strCol & strRow).Value = currentData
End Sub
 
Hallo HSV,

Ik ben nog meer aan het zoeken geweest op internet en vond bij toeval een andere manier om het op te lossen, namelijk:

Code:
Dim wsData As Worksheet
Set wsData = Worksheets("Data")
wsData.Cells(IndexRow, IndexCol).Value = TB1.Value


Deze manier werkt.

Is dit dan wel een correcte manier?

Soms weet ik niet wat nou de beste manier is om iets op te lossen.

Ik zit zelf veel op msdn.microsoft.com, maar dat vind ik soms moeilijk te begrijpen

groeten,

Edwin
 
Ik kan hier vandaan niet zien of dat een goede oplossing is.

Jij stelt een vraag; ik geef een reactie, maar als jij niet aangeeft welke richting je op gaat, blijf ik je niet lang volgen.
Zoekt en gij zult vinden zou ik zeggen.
 
Oke,

Ik zal het proberen uit te leggen. Ik wil een functie maken die het volgende doet (de functie is stap 2, eerst maar een kijken of hij het doet in een Form)

Ik heb kollommen in een excel sheet staan. In deze kolommen staan gevulde cellen staan. De lengte van de kollomen is variabel


Op welke rij de data van een kolom begint is voor alle kolommen hetzelfde, maar instelbaar. Laten we nu zeggen rij 3
Welke kolom de data staat moet ook instelbaar zijn, laten we zeggen E, de 5e kolom

Dus de data staat in E3 tot... de laatste gevulde cel (E11). Voor de 1e kolom.
Voor de 2e kolom F3 tot... de laatste gevulde cel (F7)
Enz

Dit wil ik graag dyamisch maken want anders komt er in me Combo box zoveel "lege vakjes" te staan

Je raad het nu. De data in het stukje gedefineerde bereik moet dus in een combo box komen.

Alle data wil ik instelbaar houden, zoals bestand, tabblad, enz omdat ik de functie wil herbruiken


Dit probeer ik te bereiken. Ik trachte dit te doen door kleine programmatjes te maken en deze te samenvoegen, maar ik loop vast


Sorry voor de onduidelijkheid. Ik was gefocust op de deel probleempjes


Gr,

Edwin
 
Laatst bewerkt:
Upload je bestandje eens.
Want is het voor één combobox of meerdere, enz.
 
In het midden staat een stuk code als
Code:
    ' Load the combobox with functions
    Dim wsVBA As Worksheet
    Dim strTest As String
    strTest = "B4:B8"
    Set wsVBA = Worksheets("VBA")
    CB1.List = wsVBA.Range(strTest).Value

Het stukje
Code:
strTest = "B4:B8"
wil ik ook graag dynimisch maken


Dit moet het stuk
Code:
    ' Fill arrays functions (later on filled out of sheet excel)
    NHCFunctie(0) = "AAA"
    NHCFunctie(1) = "BBB"
    NHCFunctie(2) = "CCC"

   ' Fill arrays sub functions (later on filled out of sheet excel)
    HHCSubFunctie(0, 0) = "A0 "
    HHCSubFunctie(1, 0) = "A1 "
    HHCSubFunctie(2, 0) = "A2 "
  
    HHCSubFunctie(0, 1) = "B0"
    HHCSubFunctie(1, 1) = "B1 "
    HHCSubFunctie(2, 1) = "B2 "
 
    HHCSubFunctie(0, 2) = "C0"
    HHCSubFunctie(1, 2) = "C1 "
    HHCSubFunctie(2, 2) = "C2 "
 
   ' Fill arrays Types (later on filled out of sheet excel)
    HHCType(0, 0, 0) = "A0-1 "
    HHCType(1, 0, 0) = "A0-2 "
    HHCType(2, 0, 0) = "A0-3 "
  
    HHCType(0, 1, 0) = "A1-1 "
    HHCType(1, 1, 0) = "A1-2 "
    HHCType(2, 1, 0) = "A1-3 "
  
    HHCType(0, 2, 0) = "A2-1 "
    HHCType(1, 2, 0) = "A2-2 "
    HHCType(2, 2, 0) = "A2-3 "
 
    HHCType(0, 0, 1) = "B0-1 "
    HHCType(1, 0, 1) = "B0-2 "
    HHCType(2, 0, 1) = "B0-3 "
  
    HHCType(0, 1, 1) = "B1-1 "
    HHCType(1, 1, 1) = "B1-2 "
    HHCType(2, 1, 1) = "B1-3 "
  
    HHCType(0, 2, 1) = "B2-1 "
    HHCType(1, 2, 1) = "B2-2 "
    HHCType(2, 2, 1) = "B2-3 "
  
    HHCType(0, 0, 2) = "C0-1 "
    HHCType(1, 0, 2) = "C0-2 "
    HHCType(2, 0, 2) = "C0-3 "
  
    HHCType(0, 1, 2) = "C1-1 "
    HHCType(1, 1, 2) = "C1-2 "
    HHCType(2, 1, 2) = "C1-3 "
  
    HHCType(0, 2, 0) = "C2-1 "
    HHCType(1, 2, 1) = "C2-2 "
    HHCType(2, 2, 2) = "C2-3 "


vervangen. Dit heb ik tijdelijk gemaakt om eerst iets te hebben wat werkt

Gr,

Edwin
 
Hier heb je twee voorbeelden.
Code:
With wsVBA
      CB1.List = .Columns(2).SpecialCells(2).Value
     'CB1.List = .Range("B4:B" & .Cells(Rows.Count, 2).End(xlUp).Row).Value
    End With
 
Edwin, koop eens het boek 'VBA voor dummies'. Dan gaat er een wereld voor je open.
Dat doornemen gaat veel sneller dan allerlei onhandige code vinden via Internet.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan